jquery bind 方法一个特点(绑定多个方法到一个dom的某个事件)

目录:
[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的某个事件上绑定的函数的。

郑重声明:本站内容如果来自互联网及其他传播媒体,其版权均属原媒体及文章作者所有。转载目的在于传递更多信息及用于网络分享,并不代表本站赞同其观点和对其真实性负责,也不构成任何其他建议。