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

另外,對于只需要觸發(fā)一次,隨后就要立即解除綁定的情況,jQuery 提供了一種簡寫方法——one() 方法。 one() 方法可以為元素綁定處理函數(shù)。當(dāng)處理函數(shù)觸發(fā)一次后,立即被刪除。即在每個對象上,事件處理函數(shù)只會被執(zhí)行一次。
one() 方法的結(jié)構(gòu)與 bind() 方法類似,使用方法也與 bind() 方法相同,其語法結(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>元素綁定單擊事件后,只在用戶第1次單擊按鈕時,處理函數(shù)才執(zhí)行,之后的單擊毫無作用。
以上就是jQuery 移除事件的方法的詳細(xì)內(nèi)容,更多關(guān)于jQuery 移除事件的資料請關(guān)注腳本之家其它相關(guān)文章!
相關(guān)文章
jQuery圖片輪播(二)利用構(gòu)造函數(shù)和原型創(chuàng)建對象以實現(xiàn)繼承
本文主要介紹了利用構(gòu)造函數(shù)和原型創(chuàng)建對象以實現(xiàn)繼承,并附上完成簡單輪播對象的封裝的示例代碼。有興趣的朋友可以看下2016-12-12
jQuery獲取CSS樣式中的顏色值的問題,不同瀏覽器格式不同的解決辦法
jQuery獲取CSS樣式中的顏色值的問題,不同瀏覽器格式不同的解決辦法,需要的朋友可以參考一下2013-05-05
jQuery源碼分析之jQuery中的循環(huán)技巧詳解
這篇文章主要介紹了jQuery源碼中的循環(huán)技巧,包括各類選擇、判斷、遍歷等等操作,非常實用的技巧,需要的朋友可以參考下2014-09-09
JQuery獲取樣式中的background-color顏色值的問題
用JQuery獲取樣式中的background-color的值時發(fā)現(xiàn)在獲取到的顏色值在IE中與Chrome、Firefox顯示的格式不一樣,經(jīng)搜索找到了下段代碼可解決此問題,感興趣的朋友可以參考下2013-08-08
jquery ajax 局部無刷新更新數(shù)據(jù)的實現(xiàn)案例
這篇文章主要對jquery ajax 局部無刷新更新數(shù)據(jù)的實現(xiàn)案例進(jìn)行了介紹,需要的朋友可以過來參考下,希望對大家有所幫助2014-02-02
jQuery在ie6下無法設(shè)置select選中的解決方法詳解
這篇文章主要介紹了jQuery在ie6下無法設(shè)置select選中的解決方法,結(jié)合實例分析了jQuery在ie6下無法設(shè)置select選中的原因與相關(guān)處理技巧,需要的朋友可以參考下2016-09-09
jquery調(diào)用wcf并展示出數(shù)據(jù)的方法
網(wǎng)上看了很多jquery調(diào)用wcf的例子,可能是主機(jī)的原因,我用的是gd主機(jī),所以都沒有成功,昨天自己搞了一天,終于成功了,現(xiàn)把方法和代碼和大家分享2011-07-07

