在jquery中,綁定事件的意思是將普通的時間event綁定在DOM節(jié)點上,當DOM節(jié)點被選中時,將事件與之綁定,方便用戶提供相應的操作;jquery中有bind、live、delegate和on四種方法來綁定事件,其中l(wèi)ive方法已經(jīng)被移除,建議使用on來綁定事件。
本教程操作環(huán)境:windows10系統(tǒng)、jquery3.6.0版本、Dell G3電腦。
jquery 綁定事件是什么意思
事件綁定:將普通的事件event綁定在DOM節(jié)點上,當DOM節(jié)點被選中時,將事件與之綁定,方便用戶提供相應的操作。
比如:在button按鈕上綁定click鼠標事件,在input中綁定focusin焦點事件等等,具體的例如:常常在代碼中這樣寫$('.bn1').click(function(){…})就是普通的事件綁定。
擴展:
事件委托:是指在事件綁定的基礎上補充與擴展事件綁定,具體就是指:通過子節(jié)點元素綁定事件來傳遞給父元素DOM節(jié)點(祖先節(jié)點)來統(tǒng)一管理其全部后代子元素。
這樣遇到需要綁定很多事件的子元素時,就避免了很多麻煩重復綁定事件的工作,提供了訪問效率。具體代碼$('.div').on('click','.bn2',function(){…})
jquery有四種綁定事件的方式。bind,live,delegate,on。其中l(wèi)ive已被移除,bind和delegate底層都是on實現(xiàn)的。
jquery建議我們使用on來綁定事件。除原生事件外,jquery支持綁定自定義事件。
最常用方法
$(“選擇器”).事件名稱(匿名函數(shù))
舉例1:
//這里的button為元素選擇器,click為鼠標點擊事件$("button").click(function(){ //函數(shù)內容 })
舉例2:
//這里的#btn1為id選擇器即id名為btn1的元素,mouseenter為鼠標聚焦事件$("#btn1").mouseenter(function(){ //函數(shù)內容 })
舉例3:
//這里的.ps為類選擇器即class名為ps的所有元素,mouseleave為鼠標離焦事件$(".ps").mouseleave(function(){ //函數(shù)內容 })
bind函數(shù)
$(“選擇器”).bind({“事件名稱”:匿名函數(shù)})
舉例1:
//button為元素選擇器,bind的中文意思為‘綁定’$("button").bind({"click":function(){ //函數(shù)內容 }})
舉例2:
//這里的#btn1為id選擇器即id名為btn1的元素,mouseenter為鼠標聚焦事件$("#btn1").bind({"mouseenter":function(){ //函數(shù)內容 }})
舉例3:
//這里的.ps為類選擇器即class名為ps的所有元素,mouseleave為鼠標離焦事件$(".ps").bind({"mouseleave":function(){ //函數(shù)內容 }})
注
:這里的bind函數(shù)參數(shù)為一個大括號
包裹的字典,key值為雙引號下的事件名稱,value值為函數(shù)內容,一定一定一定
要注意格式。
on函數(shù)
兩個形參
$(“選擇器”).on(“事件名稱”,匿名函數(shù))
舉例:
$("button").on("click",function(){ //函數(shù)內容 })
注
:含有兩個形參的on函數(shù),和bind函數(shù)使用方法類似,只是格式不同,可以一起記憶。
三個形參
含有三個參數(shù),非常適合含有多個孩子的父節(jié)點使用,可以統(tǒng)一控制孩子節(jié)點事件
$(“父節(jié)點選擇器”).on(“事件名稱”,“孩子節(jié)點,即要綁定的元素”,匿名函數(shù))
舉例:
$("ul").on("click","li",function(){ $(this).css("color","blue"); //this表明當前點中的對象,此語句表明,當點擊li標簽時候,將該li標簽顏色變?yōu)閎lue })
注
:一定要注意含有三個參數(shù)的使用場景,并且注意this關鍵字的使用
delegate函數(shù)
delegate函數(shù)有三個形參,和on函數(shù)有著相似之處,區(qū)別是參數(shù)位置不同。
$(“父節(jié)點選擇器”).delegate(“孩子節(jié)點,即要綁定的元素”,“事件名稱”,匿名函數(shù))
$("ul").delegate("li","click",function(){ $(this).css("color","blue"); })
注
:一定要注意這里的參數(shù)排列順序和on函數(shù)的參數(shù)排列順序不同。
總結
- 縱觀上面的綁定事件,可以發(fā)現(xiàn),不同的綁定事件只是換了一個關鍵字以及相對應的參數(shù)列表;
- 它們共有的都是
$("選擇器").函數(shù)名(參數(shù)列表)
;參數(shù)列表內容無外乎為事件名稱,和匿名函數(shù),或者是子節(jié)點選擇器, - 這里的匿名函數(shù),實際上就是一個存放代碼體的地址,相當于參數(shù)是一個地址,只是為了減少代碼量,直接將函數(shù)地址用匿名函數(shù)的形式代替了。
模板 | |
---|---|
最常用 | $(“選擇器”).事件名稱(匿名函數(shù)) |
bind函數(shù) | $(“選擇器”).bind({“事件名稱”:匿名函數(shù)}) |
on函數(shù) | $(“選擇器”).on(“事件名稱”,匿名函數(shù)) |
$(“父節(jié)點選擇器”).on(“事件名稱”,“孩子節(jié)點,即要綁定的元素”,匿名函數(shù)) | |
delegate函數(shù) | $(“父節(jié)點選擇器”).delegate(“孩子節(jié)點,即要綁定的元素”,“事件名稱”,匿名函數(shù)) |
視頻教程推薦:jQuery視頻教程