经常被忽略jquery方法(1)
一.bind方法
返回值:jQuerybind(type,[data],fn)
概述
为每个匹配元素的特定事件绑定事件处理函数。
参数
type,[data],function(eventObject)String,Object,FunctionV1.0type:含有一个或多个事件类型的字符串,由空格分隔多个事件。比如"click"或"submit",还可以是自定义事件名。
data:作为event.data属性值传递给事件对象的额外数据对象
fn:绑定到每个匹配元素的事件上面的处理函数
type,[data],falseString,Object,boolV1.4.3type:含有一个或多个事件类型的字符串,由空格分隔多个事件。比如"click"或"submit",还可以是自定义事件名。
data:作为event.data属性值传递给事件对象的额外数据对象
false:将第三个参数设置为false会使默认的动作失效。
eventsStringV1.4一个或多个事件类型的字符串和函数的数据映射来执行他们。
示例
描述:
当每个段落被点击的时候,弹出其文本。
jQuery代码:
$("p").bind("click",function(){
alert($(this).text());
});描述:
同时绑定多个事件类型
jQuery代码:
$('#foo').bind('mouseentermouseleave',function(){
$(this).toggleClass('entered');
});描述:
同时绑定多个事件类型/处理程序
jQuery代码:
$("button").bind({
click:function(){$("p").slideToggle();},
mouseover:function(){$("body").css("background-color","red");},
mouseout:function(){$("body").css("background-color","#FFFFFF");}
});描述:
你可以在事件处理之前传递一些附加的数据。
jQuery代码:
functionhandler(event){
alert(event.data.foo);
}
$("p").bind("click",{foo:"bar"},handler)描述:
通过返回false来取消默认的行为并阻止事件起泡。
jQuery代码:
$("form").bind("submit",function(){returnfalse;})描述:
通过使用preventDefault()方法只取消默认的行为。
jQuery代码:
$("form").bind("submit",function(event){
event.preventDefault();
});描述:
通过使用stopPropagation()方法只阻止一个事件起泡。
jQuery代码:
$("form").bind("submit",function(event){
event.stopPropagation();
});
作者在项目中应用:个人觉得用bind比click方法要好,我们经常会遇到因为某些操作要隐藏HTML元素,如果只是隐藏却没有去除元素绑定的事件,可能会不小心触发隐藏元素里面的事件,就好比你要隐藏一个form,隐藏后form中的input事件有一定可能会被触发。所以建议在显示元素的时候bind元素事件,不显示的时候先用unbind移除元素事件,在隐藏,这样可以减少BUG出现。
二.unbind方法
返回值:jQuery,unbind(type,[data|fn]])
概述
bind()的反向操作,从每一个匹配的元素中删除绑定的事件。
参数
type,[fn]String,FunctionV1.0type:删除元素的一个或多个事件,由空格分隔多个事件值。
fn:要从每个匹配元素的事件中反绑定的事件处理函数
type,falseString,boolV1.4.3type:删除元素的一个或多个事件,由空格分隔多个事件值
false:设置为false会使默认的动作失效。
eventObjStringV1.0事件对象。这个eventObj参数来自事件绑定函数
示例
描述:
把所有段落的所有事件取消绑定
jQuery代码:
$("p").unbind()描述:
将段落的click事件取消绑定
jQuery代码:
$("p").unbind("click")描述:
删除特定函数的绑定,将函数作为第二个参数传入
jQuery代码:
varfoo=function(){
//处理某个事件的代码
};
$("p").bind("click",foo);//...当点击段落的时候会触发foo
$("p").unbind("click",foo);//...再也不会被触发foo速查表页顶↑