您的位置:首页 > Web前端 > JQuery

jQuery绑定事件之live()、bind()方法介绍

2013-09-05 20:25 543 查看
jquery中正为因事件绑定功能现在在html或div上很难看到onclick之类的事件了,而直接使用#id,class名,然后由live()、bind()方法绑定再操作了,下面我来介绍绑定事件之live()、bind()方法用法。live() 方法为被选元素附加一个或多个事件处理程序,并规定当这些事件发生时运行的函数。
通过 live() 方法附加的事件处理程序适用于匹配选择器的当前及未来的元素(比如由脚本创建的新元素)。

问题:使用jQuery的live()方法绑定事件,有时会出现重复绑定的情况,如,当点击一个按钮时,此按钮所绑定的事件会并执行n遍。
解决:使用die()方法,在live()方法绑定前,将此元素上的前面被绑定的事件统统解除,然后再通过live()方法绑定新的事件。

Js代码
//先通过die()方法解除,再通过live()绑定   
$("#selectAll").die().live("click",function(){   
        //事件运行代码   
 });

使用jquery也有近1年了,今天在看国外大牛代码突然发现一个地方没看明白,代码如下
$(window).bind('load.jcarousel', function() { windowLoaded = true; });
也许我对jQuery的了解不多吧,自己也就看过一本jQuery的入门书,然后总是在工作中学习,碰着问题了就总结一点,学习一点...嘿嘿,也许为什么动不动公司招人就是1年以上工作经验什么的,确实实战才是能让人最快速提高的。
找到jQuery API,解释如下:

1.  一次可以绑定多个事件。如:
$('#foo').bind({
  click: function() {
    // do something on click
  },
  mouseenter: function() {
    // do something on mouseenter
  }
});  
2.  任何作为type参数的字符串都是合法的;如果一个字符串不是原生的JavaScript事件名,那么这个事件处理函数会绑定到一个自定义事件上。这些自定义事件绝对不会由浏览器触发,但可以通过使用.trigger()或者.triggerHandler()在其他代码中手动触发。

3.  如果type参数的字符串中包含一个点(.)字符,那么这个事件就看做是有命名空间的了。这个点字符就用来分隔事件和他的命名空间。如:
$obj.bind('click.name', handler) 那么字符串中的 click 是事件类型,而字符串 name 就是命名空间。
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: