jQuery.undelegate()函數的使用詳解
undelegate()函數用來移除元素上綁定的一個或多個事件的事件處理函數。
undelegate()函式主要用來解除delegate()函式所綁定的事件處理函式。
此函數屬於jQuery物件(實例)。
語法
jQuery 1.4.2 新增此函數。其主要有以下三種形式的用法:
用法一:
jQueryObject.undelegate( [ selector , events [, handler ]] )
移除目前符合元素為selector元素的events事件所綁定的事件處理函數handler。
用法二:jQuery 1.4.3 新增支援該用法。
jQueryObject.undelegate( selector , eventsMap )
用法一的變體,用於同時移除多種事件類型的多個事件處理函數。 eventsMap是一個對象,每個屬性對應用法一中的參數events,值對應用法一中的參數handler。
用法三:jQuery 1.6 新增支援該用法。
jQueryObject.undelegate( namespace )
移除目前符合元素上為所有元素的包含命名空間namespace的事件的所有事件處理函數。
參數
undelegate()函式將會移除目前符合元素上為後子元素selector所綁定的events事件的事件處理函式handler。
如果省略參數selector,則移除為任何元素綁定的事件處理函數。
參數selector必須與透過delegate()函數新增綁定時傳入的選擇器一致。
如果省略參數handler,則移除指定元素指定事件類型上綁定的所有事件處理函數。
如果省略了所有參數,則表示移除目前元素上為任何元素綁定的任何事件類型的任何事件處理函數。
傳回值
undelegate()函數的回傳值為jQuery類型,傳回目前jQuery物件本身。
實際上,undelegate()函數的參數全是篩選條件,只有符合所有參數條件的事件處理函數都會被移除。參數越多,限定條件越多,移除的範圍就越小。
示例&说明
请参考下面这段初始HTML代码:
<input id="btn1" type="button" value="点击1" /> <input id="btn2" type="button" value="点击2" /> <a id="a1" href="#">CodePlayer</a>
首先,我们为上述button和元素绑定事件,然后使用undelegate()函数解除事件绑定,相应的代码如下:
function btnClick1(){ alert( this.value + "-1" ); } function btnClick2(){ alert( this.value + "-2" ); } var $body = $("body"); // 在body元素上为所有button元素的click事件绑定事件处理函数btnClick1 $body.delegate( ":button", "click", btnClick1 ); //在body元素上为所有button元素的click事件绑定事件处理函数btnClick2 $body.delegate( ":button", "click", btnClick2 ); //为所有a元素绑定click、mouseover、mouseleave事件 $body.delegate( "a", "click mouseover mouseleave", function(event){ if( event.type == "click" ){ alert("点击事件"); }else if( event.type == "mouseover" ){ $(this).css("color", "red"); }else{ $(this).css("color", "blue"); } }); //移除body元素为所有button元素的click事件绑定的事件处理函数btnClick2 //点击按钮,只执行btnClick1 $body.undelegate(":button", "click", btnClick2); //移除body元素为所有button元素的click事件绑定的所有事件处理函数(btnClick1和btnClick2) //点击按钮,不会执行任何事件处理函数 // $body.undelegate(":button", "click"); //注意: $body.undelegate("#btn1", "click"); 无法移除btn1的点击事件,undelegate()函数指定的选择器必须与delegate()函数传入的选择器一致。 // 移除body元素为所有元素(包括button和<a>元素)的任何事件绑定的所有处理函数 // 点击按钮、链接,或用鼠标在链接上移入、移出,都不会触发执行任何事件处理函数 //$("body").undelegate( );
此外undelegate()函数还可以只移除指定命名空间的所有元素的所有事件绑定。
var $body = $("body"); $body.delegate("#btn1", "click.foo.bar", function(event){ alert("click-1"); }); $body.delegate("#btn1", "click.test", function(event){ alert("click-2"); }); $body.delegate("#btn1", "click.test.foo", function(event){ alert("click-3"); }); // $body.undelegate(".test"); // 移除click-2、click-3 // $body.undelegate(".foo"); // 移除click-1、click-3 // $body.undelegate(".foo.bar"); // 移除click-1
以上是jQuery.undelegate()函數的使用詳解的詳細內容。更多資訊請關注PHP中文網其他相關文章!

熱AI工具

Undresser.AI Undress
人工智慧驅動的應用程序,用於創建逼真的裸體照片

AI Clothes Remover
用於從照片中去除衣服的線上人工智慧工具。

Undress AI Tool
免費脫衣圖片

Clothoff.io
AI脫衣器

Video Face Swap
使用我們完全免費的人工智慧換臉工具,輕鬆在任何影片中換臉!

熱門文章

熱工具

記事本++7.3.1
好用且免費的程式碼編輯器

SublimeText3漢化版
中文版,非常好用

禪工作室 13.0.1
強大的PHP整合開發環境

Dreamweaver CS6
視覺化網頁開發工具

SublimeText3 Mac版
神級程式碼編輯軟體(SublimeText3)

MetaMask(中文也叫小狐狸錢包)是一款免費的、廣受好評的加密錢包軟體。目前,BTCC已支援綁定MetaMask錢包,綁定後可使用MetaMask錢包進行快速登錄,儲值、買幣等,且首次綁定還可獲得20USDT體驗金。在BTCCMetaMask錢包教學中,我們將詳細介紹如何註冊和使用MetaMask,以及如何在BTCC綁定並使用小狐狸錢包。 MetaMask錢包是什麼? MetaMask小狐狸錢包擁有超過3,000萬用戶,是當今最受歡迎的加密貨幣錢包之一。它可免費使用,可作為擴充功能安裝在網絡

Go語言提供了兩種動態函數創建技術:closures和反射。 closures允許存取閉包作用域內的變量,而反射可使用FuncOf函數建立新函數。這些技術在自訂HTTP路由器、實現高度可自訂的系統和建置可插拔的元件方面非常有用。

在C++函數命名中,考慮參數順序至關重要,可提高可讀性、減少錯誤並促進重構。常見的參數順序約定包括:動作-物件、物件-動作、語意意義和遵循標準函式庫。最佳順序取決於函數目的、參數類型、潛在混淆和語言慣例。

1. SUM函數,用於對一列或一組單元格中的數字進行求和,例如:=SUM(A1:J10)。 2、AVERAGE函數,用於計算一列或一組儲存格中的數字的平均值,例如:=AVERAGE(A1:A10)。 3.COUNT函數,用於計算一列或一組單元格中的數字或文字的數量,例如:=COUNT(A1:A10)4、IF函數,用於根據指定的條件進行邏輯判斷,並返回相應的結果。

C++函數中預設參數的優點包括簡化呼叫、增強可讀性、避免錯誤。缺點是限制靈活性、命名限制。可變參數的優點包括無限彈性、動態綁定。缺點包括複雜性更高、隱式型別轉換、除錯困難。

C++中的函數傳回參考類型的好處包括:效能提升:引用傳遞避免了物件複製,從而節省了記憶體和時間。直接修改:呼叫方可以直接修改傳回的參考對象,而無需重新賦值。程式碼簡潔:引用傳遞簡化了程式碼,無需額外的賦值操作。

自訂PHP函數與預定義函數的差異在於:作用域:自訂函數僅限於其定義範圍,而預定義函數可在整個腳本中存取。定義方式:自訂函數使用function關鍵字定義,而預先定義函數則由PHP核心定義。參數傳遞:自訂函數接收參數,而預先定義函數可能不需要參數。擴充性:自訂函數可以根據需要創建,而預定義函數是內建的且無法修改。
