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