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元素事件,其语法结构是一样$("p").bind("mouseenter mouseleave",function(){alert("ok");})$("p").live("mouseenter mouseleave",function(){alert("ok");})delegate用于事件委托,也是绑定过JavaScript或者jQuery添加的DOM元素事件。$("div").delegate("p","click",function(){alert("p");})点击div下面的P执行alert;而on是在1.7之后新增的,是把bind,live,delegate全部合并在一起了,$("div").on("click","p",function(){alert(1);})不需要事件委托的时候把P去掉就会变成点击div触发了。个人建议根据版本来使用,语法其实都差不多,如果你是用1.7版本以上就建议用on,毕竟bind,live,delegate这些将来都会遗弃了,如有错误,请指出。顺便吐槽一下楼上的回答,不走心啊