一、jQuery的.bind,live和.delegate之间的区别
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()。
二、jQuery事件绑定方法bind,live,delegate和on的区别
bind是用来绑定一个或多个事件的,live其实bind的一个加强版,用来绑定通过JavaScript或者jQuery添加的DOM元素事件,其语法结构是一样
123456$("p").bind("mouseenter mouseleave",function(){alert("ok");})$("p").live("mouseenter mouseleave",function(){alert("ok");})
delegate用于事件委托,也是绑定过JavaScript或者jQuery添加的DOM元素事件。
123$("div").delegate("p","click",function(){alert("p");})
点击div下面的P执行alert;
而on是在1.7之后新增的,是把bind,live,delegate全部合并在一起了,
123$("div").on("click","p",function(){ alert(1);})
不需要事件委托的时候把P去掉就会变成点击div触发了。
个人建议根据版本来使用,语法其实都差不多,如果你是用1.7版本以上就建议用on,毕竟bind,live,delegate这些将来都会遗弃了,如有错误,请指出。顺便吐槽一下楼上的回答,不走心啊
三、jquery中on()方法和live()方法的区别
一、作用不同
1、on():在被选元素及子元素上添加一个或多个事件处理程序。
2、live():为被选元素附加一个或多个事件处理程序,并规定当这些事件发生时运行的函数。
二、触发条件不同
1、on():使用 on()方法添加的事件处理程序适用于当前及未来的元素(比如由脚本创建的新元素)。
2、live():通过 live()方法附加的事件处理程序适用于匹配选择器的当前及未来的元素(比如由脚本创建的新元素)。
三、语法不同
1、on():$(selector).on(event,childSelector,data,function)childSelector可选。规定只能添加到指定的子元素上的事件处理程序(且不是选择器本身,比如已废弃的 delegate()方法)。
2、live():$(selector).live(event,data,function),其中event必需。规定附加到元素的一个或多个事件。由空格分隔多个事件。必须是有效的事件。
参考资料来源:百度百科-jQuery
四、Jquery中bind和live的区别
Jquery中bind和live的区别如下:
1.bind()可以绑定多个事件,live()一次只能绑定一个事件。
区别在于用live来绑定事件会给所有当前以及将来在页面上的元素绑定事件(使用委派的方式)。比如说,如果你给页面上所有的li用live绑定了click事件。那么当在以后增加一个li到这个页面时,对于这个新增加的li,其click事件依然可用。而无需重新给这种新增加的元素绑定事件。
2.live目前只支持所有事件的子集,支持列表参考上面的说明。
.live不支持liveQuery提供的“无事件”样式的回调函数。.live只能绑定事件处理函数。
.live没有”setup”和”cleanup”的过程。因为所有的事件是委派而不是直接绑定在元素上的。
感谢您的阅读!希望本文对解决您关于14个jQuery Live Search插件的问题有所帮助。如果您还有其他疑问,欢迎随时向我们提问。