jquery绑定事件

来源:互联网 发布:sql 日期变量 编辑:程序博客网 时间:2024/06/06 00:36

bind()向匹配元素添加一个或多个事件处理器。
$(selector).bind(event,data,function)

live() 向当前或未来的匹配元素添加一个或多个事件处理器;
$(selector).live(event,data,function)

delegate() 为指定的元素(被选元素的子元素)添加一个或多个事件处理程序,并规定当这些事件发生时运行的函数。使用 delegate() 方法的事件处理程序适用于当前或未来的元素(比如由脚本创建的新元素)。
$(selector).delegate(childSelector,event,data,function)

on() 为指定的元素,添加一个或多个事件处理程序,并规定当这些事件发生时运行的函数。使用 on() 方法的事件处理程序适用于当前或未来的元素(比如由脚本创建的新元素)。
$(selector).on(event,childselector,data,function)

相同点:
  1.都支持单元素多事件的绑定;空格相隔方式或者大括号替代方式;
  2.均是通过事件冒泡方式,将事件传递到document进行事件的响应;

比较和联系:
1. bind()函数只能针对已经存在的元素进行事件的设置;但是live(),on(),delegate()均支持未来新添加元素的事件设置;
2. bind()函数在jquery1.7版本以前比较受推崇,1.7版本出来之后,官方已经不推荐用bind(),替代函数为on(),这也是1.7版本新添加的函数,同样,可以用来代替live()函数,live()函数在1.9版本已经删除;
3. live()函数和delegate()函数两者类似,但是live()函数在执行速度,灵活性和CSS选择器支持方面较delegate()差些
4. bind()支持Jquery所有版本;live()支持jquery1.8-;delegate()支持jquery1.4.2+;on()支持jquery1.7+;

总结  
如果项目中引用jquery版本为低版本,推荐用delegate(),高版本jquery可以使用on()来代替,以上仅为个人看法,如有不同想法,欢迎拍砖交流。

1 0
原创粉丝点击