jquery繫結事件是什麼意思

2022-06-24 18:00:07

在jquery中,繫結事件的意思是將普通的時間event繫結在DOM節點上,當DOM節點被選中時,將事件與之繫結,方便使用者提供相應的操作;jquery中有bind、live、delegate和on四種方法來繫結事件,其中live方法已經被移除,建議使用on來繫結事件。

本教學操作環境:windows10系統、jquery3.6.0版本、Dell G3電腦。

jquery 繫結事件是什麼意思

事件繫結:將普通的事件event繫結在DOM節點上,當DOM節點被選中時,將事件與之繫結,方便使用者提供相應的操作。

比如:在button按鈕上繫結click滑鼠事件,在input中繫結focusin焦點事件等等,具體的例如:常常在程式碼中這樣寫$('.bn1').click(function(){...})就是普通的事件繫結。

擴充套件:

事件委託:是指在事件繫結的基礎上補充與擴充套件事件繫結,具體就是指:通過子節點元素繫結事件來傳遞給父元素DOM節點(祖先節點)來統一管理其全部後代子元素。

這樣遇到需要繫結很多事件的子元素時,就避免了很多麻煩重複繫結事件的工作,提供了存取效率。具體程式碼$('.div').on('click','.bn2',function(){...})

jquery有四種系結事件的方式。bind,live,delegate,on。其中live已被移除,bind和delegate底層都是on實現的。

jquery建議我們使用on來繫結事件。除原生事件外,jquery支援繫結自定義事件。

最常用方法

$(「選擇器」).事件名稱(匿名函數)

舉例1:

//這裡的button為元素選擇器,click為滑鼠點選事件$("button").click(function(){
					//函數內容
				})

舉例2:

//這裡的#btn1為id選擇器即id名為btn1的元素,mouseenter為滑鼠聚焦事件$("#btn1").mouseenter(function(){
					//函數內容
				})

舉例3:

//這裡的.ps為類選擇器即class名為ps的所有元素,mouseleave為滑鼠離焦事件$(".ps").mouseleave(function(){
					//函數內容
				})

bind函數

$(「選擇器」).bind({「事件名稱」:匿名函數})

舉例1:

//button為元素選擇器,bind的中文意思為‘繫結’$("button").bind({"click":function(){
					//函數內容
				}})

舉例2:

//這裡的#btn1為id選擇器即id名為btn1的元素,mouseenter為滑鼠聚焦事件$("#btn1").bind({"mouseenter":function(){
					//函數內容
				}})

舉例3:

//這裡的.ps為類選擇器即class名為ps的所有元素,mouseleave為滑鼠離焦事件$(".ps").bind({"mouseleave":function(){
					//函數內容
				}})

:這裡的bind函數引數為一個大括號包裹的字典,key值為雙引號下的事件名稱,value值為函數內容,一定一定一定要注意格式。

on函數

兩個形參

$(「選擇器」).on(「事件名稱」,匿名函數)

舉例:

$("button").on("click",function(){
					//函數內容
				})

:含有兩個形參的on函數,和bind函數使用方法類似,只是格式不同,可以一起記憶。

三個形參

含有三個引數,非常適合含有多個孩子的父節點使用,可以統一控制孩子節點事件

$(「父節點選擇器」).on(「事件名稱」,「孩子節點,即要繫結的元素」,匿名函數)

舉例:

$("ul").on("click","li",function(){
					$(this).css("color","blue");    //this表明當前點中的物件,此語句表明,當點選li標籤時候,將該li標籤顏色變為blue
 				})

:一定要注意含有三個引數的使用場景,並且注意this關鍵字的使用

delegate函數

delegate函數有三個形參,和on函數有著相似之處,區別是引數位置不同。

$(「父節點選擇器」).delegate(「孩子節點,即要繫結的元素」,「事件名稱」,匿名函數)

$("ul").delegate("li","click",function(){
					$(this).css("color","blue");
				})

:一定要注意這裡的引數排列順序和on函數的引數排列順序不同。

總結

  • 縱觀上面的繫結事件,可以發現,不同的繫結事件只是換了一個關鍵字以及相對應的參數列;
  • 它們共有的都是$("選擇器").函數名(參數列);參數列內容無外乎為事件名稱,和匿名函數,或者是子節點選擇器,
  • 這裡的匿名函數,實際上就是一個存放程式碼體的地址,相當於引數是一個地址,只是為了減少程式碼量,直接將函數地址用匿名函數的形式代替了。
模板
最常用$(「選擇器」).事件名稱(匿名函數)
bind函數$(「選擇器」).bind({「事件名稱」:匿名函數})
on函數$(「選擇器」).on(「事件名稱」,匿名函數)

$(「父節點選擇器」).on(「事件名稱」,「孩子節點,即要繫結的元素」,匿名函數)
delegate函數$(「父節點選擇器」).delegate(「孩子節點,即要繫結的元素」,「事件名稱」,匿名函數)

視訊教學推薦:

以上就是jquery繫結事件是什麼意思的詳細內容,更多請關注TW511.COM其它相關文章!