jQuery 移除事件的方法
在綁定事件的過程中,不僅可以為同一個元素綁定多個事件,也可以為多個元素綁定同一個事件。假設網(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">點擊我</button> <div id="test"></div> </body>
當單擊按鈕后,會出現(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">點擊我</button> <div id="test"></div> <button id="delAll">刪除所有事件</button> </body>
因為元素綁定的都是 click 事件,所以不寫參數(shù)也可以達到同樣的目的。
$('#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ù)指定一個變量。然后就可以單獨刪除某一個事件了, 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">點擊我</button> <div id="test"></div> <button id="delTwo">刪除第二個事件</button> </body>
當單擊“刪除第二個事件”按鈕后,再次單擊“點擊我”按鈕,顯示下圖所示的效果。
另外,對于只需要觸發(fā)一次,隨后就要立即解除綁定的情況,jQuery 提供了一種簡寫方法——one() 方法。 one() 方法可以為元素綁定處理函數(shù)。當處理函數(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">點擊我</button> <div id="test"></div> </body>
使用one() 方法為<button>元素綁定單擊事件后,只在用戶第1次單擊按鈕時,處理函數(shù)才執(zhí)行,之后的單擊毫無作用。
以上就是jQuery 移除事件的方法的詳細內(nèi)容,更多關于jQuery 移除事件的資料請關注腳本之家其它相關文章!
相關文章
ASP.NET jQuery 實例9 通過控件hyperlink實現(xiàn)返回頂部效果
ASP.NET jQuery 實例9 通過控件hyperlink實現(xiàn)返回頂部效果的實現(xiàn)代碼,需要的朋友可以參考下2012-02-02jQuery實現(xiàn)的超酷蘋果風格圖標滑出菜單效果代碼
這篇文章主要介紹了jQuery實現(xiàn)的超酷蘋果風格圖標滑出菜單效果代碼,涉及jQuery基于鼠標hover事件動態(tài)操作頁面元素屬性的相關技巧,非常美觀實用,需要的朋友可以參考下2015-09-09Jquery圖形報表插件 jqplot簡介及參數(shù)詳解
jqPlot是 一款基于jquery類庫的圖標繪制插件。通過jqPlot可以再網(wǎng)頁中繪制線狀、柱狀、餅狀等多種樣式圖表。而且,jqPlot具有插件可擴展性 (Pluggability),你可以編寫自己的圖表樣式2012-10-10jQuery動畫效果-fadeIn fadeOut淡入淺出示例代碼
jQuery動畫效果淡入淺出想必大家都有見到過吧,其實很很簡單,通過fadeIn fadeOut方法便可輕松實現(xiàn),具體如下,喜歡的朋友可以參考下,希望對大家有所幫助2013-08-08jQuery 判斷是否包含在數(shù)組中Array[]的方法
下面小編就為大家?guī)硪黄猨Query 判斷是否包含在數(shù)組中Array[]的方法。小編覺得挺不錯的,現(xiàn)在就分享給大家,也給大家做個參考。一起跟隨小編過來看看吧2016-08-08