深入理解jQuery之事件移除
來源:易賢網(wǎng) 閱讀:762 次 日期:2016-06-17 11:30:38
溫馨提示:易賢網(wǎng)小編為您整理了“深入理解jQuery之事件移除”,方便廣大網(wǎng)友查閱!

有時(shí)候事件執(zhí)行完了,想取消事件的效果可以通過一定的辦法來處理。比如bind()方法,可以通過unbind()方法來移除事件的效果。

比如下面的一個(gè)案例:

代碼如下:

<script type="text/javascript">

  $(function(){

    $('#btn').bind("click", function(){

           $('#test').append("<p>我的綁定函數(shù)1</p>");

       }).bind("click", function(){

           $('#test').append("<p>我的綁定函數(shù)2</p>");

       }).bind("click", function(){

            $('#test').append("<p>我的綁定函數(shù)3</p>");

       });

  })

</script>

html部分:

代碼如下:

<body>

<button id="btn">點(diǎn)擊我</button>

<div id="test"></div>

</body>

當(dāng)點(diǎn)擊按鈕btn時(shí),觸發(fā)了三個(gè)點(diǎn)擊事件,這里的append()方法,向div層中傳遞了三個(gè)段落內(nèi)容。

append() 方法在被選元素的結(jié)尾(仍然在內(nèi)部)插入指定內(nèi)容。它與html()方法還是不同的,html()方法是改變整個(gè)元素中的內(nèi)容,而不是向元素結(jié)尾插入內(nèi)容。text()方法與html() 方法類似,但區(qū)別在于html()方法中可以寫入html的代碼,而且可以被正確的解析,而text() 只能當(dāng)html代碼為正常的字符串。

這里每次點(diǎn)擊,都會(huì)執(zhí)行一次事件,想div層末尾添加段落。

下面的代碼是取消事件效果的,可以通過刪除事件,使點(diǎn)擊效果失效:

代碼如下:

<script type="text/javascript">

  $(function(){

    $('#btn').bind("click", function(){

           $('#test').append("<p>我的綁定函數(shù)1</p>");

       }).bind("click", function(){

           $('#test').append("<p>我的綁定函數(shù)2</p>");

       }).bind("click", function(){

            $('#test').append("<p>我的綁定函數(shù)3</p>");

       });

    $('#delAll').click(function(){

       $('#btn').unbind("click");

    });

  })

</script>

$('#btn').unbind("click");這句代碼的作用就是取消元素btn下的click事件。它不僅僅對(duì)于bind()方法有效,它對(duì)于click()方法同樣有效。從某種角度上講,bind("click",function(){})與click(function(){})是等價(jià)的。

 還可以針對(duì)具體的方法,刪除特定的事件。

代碼如下:

<script type="text/javascript">

  $(function(){

    $('#btn').bind("click", myFun1 = function(){

           $('#test').append("<p>我的綁定函數(shù)1</p>");

       }).bind("click", myFun2 = function(){

           $('#test').append("<p>我的綁定函數(shù)2</p>");

       }).bind("click", myFun3 = function(){

            $('#test').append("<p>我的綁定函數(shù)3</p>");

       });

    $('#delTwo').click(function(){

       $('#btn').unbind("click",myFun2);

    });

  })

</script>

unbind()方法的第二個(gè)參數(shù)是事件對(duì)應(yīng)得執(zhí)行函數(shù)的名字,這樣執(zhí)行完后,只有myFun2這個(gè)事件被刪除了,其他兩個(gè)click事件正常執(zhí)行。

還有一種跟bind()方法類似的方法one(),區(qū)別大概就是one()方法只執(zhí)行一次。

為每一個(gè)匹配元素的特定事件(像click)綁定一個(gè)一次性的事件處理函數(shù)。

代碼如下:

<script type="text/javascript">

  $(function(){

    $('#btn').one("click", function(){

           $('#test').append("<p>我的綁定函數(shù)1</p>");

       }).one("click", function(){

           $('#test').append("<p>我的綁定函數(shù)2</p>");

       }).one("click", function(){

            $('#test').append("<p>我的綁定函數(shù)3</p>");

       });

  })

</script>

點(diǎn)擊后,只執(zhí)行一次。再次點(diǎn)擊不會(huì)觸發(fā)效果。這就是one方法。

以上這篇深入理解jQuery之事件移除就是小編分享給大家的全部內(nèi)容了,希望能給大家一個(gè)參考

更多信息請(qǐng)查看網(wǎng)絡(luò)編程
易賢網(wǎng)手機(jī)網(wǎng)站地址:深入理解jQuery之事件移除
由于各方面情況的不斷調(diào)整與變化,易賢網(wǎng)提供的所有考試信息和咨詢回復(fù)僅供參考,敬請(qǐng)考生以權(quán)威部門公布的正式信息和咨詢?yōu)闇?zhǔn)!

2025國考·省考課程試聽報(bào)名

  • 報(bào)班類型
  • 姓名
  • 手機(jī)號(hào)
  • 驗(yàn)證碼
關(guān)于我們 | 聯(lián)系我們 | 人才招聘 | 網(wǎng)站聲明 | 網(wǎng)站幫助 | 非正式的簡要咨詢 | 簡要咨詢須知 | 新媒體/短視頻平臺(tái) | 手機(jī)站點(diǎn) | 投訴建議
工業(yè)和信息化部備案號(hào):滇ICP備2023014141號(hào)-1 云南省教育廳備案號(hào):云教ICP備0901021 滇公網(wǎng)安備53010202001879號(hào) 人力資源服務(wù)許可證:(云)人服證字(2023)第0102001523號(hào)
云南網(wǎng)警備案專用圖標(biāo)
聯(lián)系電話:0871-65099533/13759567129 獲取招聘考試信息及咨詢關(guān)注公眾號(hào):hfpxwx
咨詢QQ:1093837350(9:00—18:00)版權(quán)所有:易賢網(wǎng)
云南網(wǎng)警報(bào)警專用圖標(biāo)