目录:
[TOC]
jquery bind方法介绍
- 方法声明:bind(type,[data],fn)
- 方法说明:为每一个匹配元素的特定事件(eg:click)绑定一个事件处理器函数。这个事件处理函数会通过参数方式接收到一个事件对象,可以通过它来阻止(浏览器)默认的行为。如果既想取消默认的行为,又想阻止事件起泡,这个事件处理函数必须返回false。
- 技巧:多数情况下,可以把事件处理器函数定义为匿名函数。
参数意义
- type (String) : 事件类型。
- data (Object) : (可选) 作为event.data属性值,然后event会被传递给事件处理函数,data可以从event中获取到。
- fn (Function) : 绑定到每个匹配元素的事件上的处理函数。
示例
当每个段落被点击的时候,弹出其文本:
$("p").bind("click", function(){
alert( $(this).text() );
});
你可以传递一些附加的数据给事件处理函数:
function handler(event) {
alert(event.data.foo);
}
$("p").bind("click",{foo: "bar"},handler);
你可以通过返回false来取消默认的行为并阻止事件起泡:
$("form").bind("submit", function() { return false; })
你可以通过使用preventDefault()方法只取消默认的行为:
$("form").bind("submit", function(event){
event.preventDefault();
});
你可以通过使用stopPropagation()方法只阻止一个事件起泡:
$("form").bind("submit", function(event){
event.stopPropagation();
});
进入主题
- jquery的bind方法调用如果调用多次是什么效果呢?
- 答案是,同一个dom元素的同一个事件会被绑定多次。则直接会导致各种错误。有的人由于页面嵌套很多,结构比较复杂,经常出现一段js代码被执行多次的情况,如何导致一些莫名其妙的错误。这种错误一般来说是很难被发现的,因为很少有人会考虑自己的某句代码被执行了多少次,而且是由于页面嵌套导致多次执行的问题。
- 解决方案,每次调用bind方法的时候都先调用unbind方法即可。
- unbind方法是用于解除dom的某个事件上绑定的函数的。