jQuery绑定一次性事件和注销事件
綁定一次性事件
one()是on()的一個特例,用法與bind()完全相同,但是他綁定的事件在執(zhí)行一次響應(yīng)之后就會失效。用法如下:
one(event,[data],dunction)參數(shù)說明如下:
event:必須參數(shù)項,添加到元素的一個或多個事件,如click、dblclick等。
data:可選參數(shù)項,設(shè)計需要傳遞的參數(shù)。
function:必須參數(shù)項,當(dāng)綁定事件發(fā)生時,需要執(zhí)行的函數(shù)。
$(function(){$("ul>li").one("click",function(){alert($(this).text());}); })注銷事件
交互性事件的生命周期往往與頁面的生命周期是相同的,但是很多交互性事件只有在特定的時間或者條件下有效,超過了時效期,就應(yīng)該把他注銷掉,以節(jié)省系統(tǒng)空間。
jQuery提供了四種事件的綁定方式(具體用法在上一博客已經(jīng)介紹過,有興趣的小伙伴可以看一下我的上一篇博客):bind()、live()、delegate()、on(),對應(yīng)的注銷事件方式為:unbind()、die()、undelegate()、off()。
注銷方法與注冊方法是相反的操作,參數(shù)和用法基本相同。他們能夠從每一個匹配的元素中刪除綁定的事件。如果沒有指定參數(shù)操作,則刪除所有的綁定事件,包括注冊的自定事件。
在下面的案例中,為p元素標(biāo)簽綁定了dblclick、click、mouseover、mouseout四個事件,當(dāng)觸發(fā)雙擊事件時,會注銷掉所有的事件,此時p元素之前的4個事件都將會被注銷。
$(function(){$("p").dblclick(function(){ //注冊雙擊事件$("p").off(); //注冊注銷所有事件});$("p").click(f); //注冊單擊事件$("p").mouseover(f); //注冊鼠標(biāo)移過事件$("p").mouseout(f); //注冊鼠標(biāo)移出事件function f(event){ //事件處理函數(shù)this.innerHTML= "事件類型 = " + event.type;} })在下面的代碼中,只會注銷p元素的mouseover事件,而其他類型的事件依然存在。
$("p").dblclick(function(){ //注冊雙擊事件$("p").off("mouseover");//注冊鼠標(biāo)移過事件});?如果將在綁定時傳遞的處理函數(shù)作為第二個參數(shù),則只有這個特定的事件處理函數(shù)會被刪除。
看下面的代碼,為p元素綁定了兩個處理函數(shù)不同的mouseover事件,但是第二次綁定的事件會覆蓋到之前所綁定的事件,因此當(dāng)劃過該元素時,起內(nèi)容會顯示為“第二個點擊事件”。當(dāng)點擊該元素后,由于傳遞了注銷函數(shù)的第二個參數(shù),因此只會注銷掉處理函數(shù)為e的mouseover事件。處理函數(shù)為f的mouseover事件依然存在
$(function(){$("p").click(function(){ //注冊單擊事件$("p").off("mouseover", e); //注銷鼠標(biāo)經(jīng)過事件中e()事件處理函數(shù)});$("p").mouseover(f); //注冊鼠標(biāo)經(jīng)過事件,綁定f()事件處理函數(shù)$("p").mouseover(e); //注冊鼠標(biāo)經(jīng)過事件,綁定e()事件處理函數(shù)function f(){$(this).text("第一個單擊事件")}function e(){$(this).text("第二個單擊事件")} })?
總結(jié)
以上是生活随笔為你收集整理的jQuery绑定一次性事件和注销事件的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 游戏制作教程
- 下一篇: 对 RNN 中 BPTT 求导过程的解析