bind:
1.兼容性較好槽奕;
2.綁定事件到所有選中的元素上大磺;
3.不能綁定事件到動態(tài)添加的元素上给郊;
4.效率較低菩浙,尤其是嵌套關(guān)系較深的元素
$("li").bind("click", function (event) {
alert("hello");
});
live:
1.把所有的事件都綁定到j(luò)Query對象$(document)上迎罗;
2.事件只綁定一次睬愤,不需要綁定到篩選出來的元素上;
3.可以綁定事件到動態(tài)添加的元素上纹安;
4.不能使用stopPropagation來阻止事件的冒泡
$("li").live("click", function (event) {
alert("hello");
});
delegate:
1.將事件綁定到要添加事件元素的父元素身上尤辱,比live更加靈活;
2.綁定的父元素可以采用就近原則钻蔑,比lve的效率高
3.也可以用在動態(tài)添加的元素上
$("#ul").delegate("li", "click", function (event) {
alert("hello");
});
On:
是jQuery1.7中新增的啥刻,前面的三種方法都是依賴on方法來實現(xiàn)的奸鸯。咪笑,主要特點:
1.事件的添加和卸載都要是通過on來實現(xiàn)的,提供一種統(tǒng)一的事件處理方法娄涩。
2.增加了使用的難度窗怒,對于不熟悉on的使用的,很有可能誤用蓄拣,導(dǎo)致性能下降扬虚。
經(jīng)驗:on方法的正確使用
1.使用on方法,如果第二個參數(shù)使用null球恤,則作用與bind( )相同辜昵;
2.如果第二個參數(shù)適用了選擇器,就要看調(diào)用對象
i.如果調(diào)用對象是$(document)咽斧,則作用與live( )相同
ii.否則與delegate()相同