jQuery 移除事件的方法
在綁定事件的過(guò)程中,不僅可以為同一個(gè)元素綁定多個(gè)事件,也可以為多個(gè)元素綁定同一個(gè)事件。假設(shè)網(wǎng)頁(yè)上有一個(gè)<button>元素,使用以下代碼為該元素綁定多個(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>
<body>
<button id="btn">點(diǎn)擊我</button>
<div id="test"></div>
</body>

當(dāng)單擊按鈕后,會(huì)出現(xiàn)如上圖所示的效果。
1. 移除按鈕元素上所有注冊(cè)的事件
添加一個(gè)移除事件的按鈕。然后為按鈕綁定一個(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>");
});
$('#delAll').click(function(){
$('#btn').unbind("click");
});
})
</script>
<body>
<button id="btn">點(diǎn)擊我</button>
<div id="test"></div>
<button id="delAll">刪除所有事件</button>
</body>
因?yàn)樵亟壎ǖ亩际?click 事件,所以不寫(xiě)參數(shù)也可以達(dá)到同樣的目的。
$('#delAll').click(function(){
$('#btn').unbind();
});
下面來(lái)看看 unbind() 方法的語(yǔ)法結(jié)構(gòu):unbind([type] , [data]);
第1個(gè)參數(shù)是事件類(lèi)型,第2個(gè)參數(shù)是將要移除的函數(shù),具體說(shuō)明如下。
(1) 如果沒(méi)有參數(shù),則刪除所有綁定的事件。
(2) 如果提供了事件類(lèi)型作為參數(shù),則只刪除該類(lèi)型的綁定事件。
(3) 如果把在綁定時(shí)傳遞的處理函數(shù)作為第2個(gè)參數(shù),則只有這個(gè)特定的事件處理函數(shù)會(huì)被刪除。
2. 移除<button>元素的其中一個(gè)事件
首先需要為這些匿名處理函數(shù)指定一個(gè)變量。然后就可以單獨(dú)刪除某一個(gè)事件了, jQuery 代碼如下:
<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>
<body>
<button id="btn">點(diǎn)擊我</button>
<div id="test"></div>
<button id="delTwo">刪除第二個(gè)事件</button>
</body>
當(dāng)單擊“刪除第二個(gè)事件”按鈕后,再次單擊“點(diǎn)擊我”按鈕,顯示下圖所示的效果。

另外,對(duì)于只需要觸發(fā)一次,隨后就要立即解除綁定的情況,jQuery 提供了一種簡(jiǎn)寫(xiě)方法——one() 方法。 one() 方法可以為元素綁定處理函數(shù)。當(dāng)處理函數(shù)觸發(fā)一次后,立即被刪除。即在每個(gè)對(duì)象上,事件處理函數(shù)只會(huì)被執(zhí)行一次。
one() 方法的結(jié)構(gòu)與 bind() 方法類(lèi)似,使用方法也與 bind() 方法相同,其語(yǔ)法結(jié)構(gòu)如下:one( type, [data], fn );
示例代碼如下:
<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>
<body>
<button id="btn">點(diǎn)擊我</button>
<div id="test"></div>
</body>
使用one() 方法為<button>元素綁定單擊事件后,只在用戶(hù)第1次單擊按鈕時(shí),處理函數(shù)才執(zhí)行,之后的單擊毫無(wú)作用。
以上就是jQuery 移除事件的方法的詳細(xì)內(nèi)容,更多關(guān)于jQuery 移除事件的資料請(qǐng)關(guān)注腳本之家其它相關(guān)文章!
相關(guān)文章
jQuery實(shí)現(xiàn)表頭固定效果的實(shí)例代碼
jQuery實(shí)現(xiàn)表頭固定效果的實(shí)例代碼,需要的朋友可以參考一下2013-05-05
ASP.NET jQuery 實(shí)例9 通過(guò)控件hyperlink實(shí)現(xiàn)返回頂部效果
ASP.NET jQuery 實(shí)例9 通過(guò)控件hyperlink實(shí)現(xiàn)返回頂部效果的實(shí)現(xiàn)代碼,需要的朋友可以參考下2012-02-02
jQuery和HTML對(duì)某個(gè)標(biāo)簽設(shè)置只讀或者禁用屬性的方式
這篇文章主要介紹了jQuery和HTML對(duì)某個(gè)標(biāo)簽設(shè)置只讀或者禁用屬性的方式,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。如有錯(cuò)誤或未考慮完全的地方,望不吝賜教2023-02-02
jQuery實(shí)現(xiàn)的超酷蘋(píng)果風(fēng)格圖標(biāo)滑出菜單效果代碼
這篇文章主要介紹了jQuery實(shí)現(xiàn)的超酷蘋(píng)果風(fēng)格圖標(biāo)滑出菜單效果代碼,涉及jQuery基于鼠標(biāo)hover事件動(dòng)態(tài)操作頁(yè)面元素屬性的相關(guān)技巧,非常美觀(guān)實(shí)用,需要的朋友可以參考下2015-09-09
Jquery圖形報(bào)表插件 jqplot簡(jiǎn)介及參數(shù)詳解
jqPlot是 一款基于jquery類(lèi)庫(kù)的圖標(biāo)繪制插件。通過(guò)jqPlot可以再網(wǎng)頁(yè)中繪制線(xiàn)狀、柱狀、餅狀等多種樣式圖表。而且,jqPlot具有插件可擴(kuò)展性 (Pluggability),你可以編寫(xiě)自己的圖表樣式2012-10-10
詳解jQuery UI庫(kù)中文本輸入自動(dòng)補(bǔ)全功能的用法
這篇文章主要介紹了詳解jQuery UI庫(kù)中文本輸入自動(dòng)補(bǔ)全功能的用法,其中重點(diǎn)講解了常用的郵箱地址輸入時(shí)后綴自動(dòng)補(bǔ)全功能的使用,需要的朋友可以參考下2016-04-04
jQuery動(dòng)畫(huà)效果-fadeIn fadeOut淡入淺出示例代碼
jQuery動(dòng)畫(huà)效果淡入淺出想必大家都有見(jiàn)到過(guò)吧,其實(shí)很很簡(jiǎn)單,通過(guò)fadeIn fadeOut方法便可輕松實(shí)現(xiàn),具體如下,喜歡的朋友可以參考下,希望對(duì)大家有所幫助2013-08-08
jquery圖片不完全按比例自動(dòng)縮小的簡(jiǎn)單代碼
開(kāi)發(fā)前期用自動(dòng)生產(chǎn) 固定大小的圖片 進(jìn)行 顯示,發(fā)現(xiàn)不能滿(mǎn)足,在前期的時(shí)候把保存了原圖,現(xiàn)在只能顯示原圖,原圖由于上傳時(shí)候沒(méi)有做任何限制所有要使用 圖片不完全按比例縮小,下面是代碼2013-07-07
jQuery 判斷是否包含在數(shù)組中Array[]的方法
下面小編就為大家?guī)?lái)一篇jQuery 判斷是否包含在數(shù)組中Array[]的方法。小編覺(jué)得挺不錯(cuò)的,現(xiàn)在就分享給大家,也給大家做個(gè)參考。一起跟隨小編過(guò)來(lái)看看吧2016-08-08

