防止事件重復(fù)綁定共有4種方法: bind();綁定事件 為被選元素添加一個(gè)或多個(gè)事件處理程序,并規(guī)定事件發(fā)生時(shí)運(yùn)行的函數(shù)。 從某種角度上講,bind("click",function(){})與click(function(){})是等價(jià)的。 unbind();移除通過bind()方法添加的事件 不僅僅對(duì)于bind()方法有效,它對(duì)于click()方法同樣有效。 $("#btn1").unbind("click").bind("click",function(){
alert("我是btn1!");
});
$("#btn1").unbind().click(function(){
alert("我是btn1!");
});
live(); jQuery1.3增加了一個(gè)live()方法,給所有當(dāng)前以及將來會(huì)匹配的元素綁定一個(gè)事件處理函數(shù)。 支持:click,dblclick, mousedown, mouseup等。 不支持 :blur, focus, mouseenter, mouseleave, change, submit。 live()一次只能綁定一個(gè)事件。 jquery利用了事件的冒泡機(jī)制,直接把事件綁定在了document上,然后通過event.target找出事件的來源。 要移除用live綁定的事件,請(qǐng)用die()方法 die(); 在jquery里,使用live()來綁定事件,若想移除該事件,要使用die()方法。 $("#btn1").die("click").live("click",function() {
alert("我是btn1!");
});
on();綁定事件。 從jQuery 1.7開始,on()函數(shù)提供了綁定事件處理程序所需的所有功能,用于統(tǒng)一取代以前的bind()、 delegate()、 live()等事件函數(shù)。 即使是執(zhí)行on()函數(shù)之后新添加的元素,只要它符合條件,綁定的事件處理函數(shù)也對(duì)其有效。 該函數(shù)可以為同一元素、同一事件類型綁定多個(gè)事件處理函數(shù)。觸發(fā)事件時(shí),jQuery會(huì)按照綁定的先后順序依次執(zhí)行綁定的事件處理函數(shù)。 要?jiǎng)h除通過on()綁定的事件,請(qǐng)使用off()函數(shù)。 如果要附加一個(gè)事件,只執(zhí)行一次,然后刪除自己,請(qǐng)使用one()函數(shù)。 off();解除綁定事件 off()函數(shù)用于移除元素上綁定的一個(gè)或多個(gè)事件的事件處理函數(shù)。 off()函數(shù)主要用于解除由on()函數(shù)綁定的事件處理函數(shù)。
on();函數(shù)和off();函數(shù)的返回值都為jQuery類型,返回當(dāng)前jQuery對(duì)象本身。 $("#btn1").off("click").on("click",function(){
alert("我是btn1!");
});
綁定的事件處理函數(shù)只會(huì)執(zhí)行一次。 $("#btn1").one("click",function(){
alert("我只執(zhí)行一次!");
}); |
|