更新時(shí)間:2021-11-11 來(lái)源:黑馬程序員 瀏覽量:
事件委派是指把原本要給子元素綁定的事件綁定到父元素上,這就表示把子元素的事件委派給父元素。由于事件有冒泡機(jī)制,當(dāng)一個(gè)元素觸發(fā)事件時(shí),可以區(qū)分發(fā)生事件的是父元素還是子元素。
事件委派是通過(guò)on()方法來(lái)實(shí)現(xiàn)的,下面我們通過(guò)代碼進(jìn)行演示。
<ul> <li>我是第1個(gè)li</li> <li>我是第2個(gè)li</li> </ul> <script> $("ul").on("click", "li:first-child", function(){ alert("單擊了li"); //單擊第1個(gè)li會(huì)觸發(fā)此事件 }); </script>
上述代碼中,click事件是綁定在父元素ul上的,但觸發(fā)事件的是第1個(gè)li子元素,當(dāng)子元素觸發(fā)事件后,就會(huì)通討事件冒泡執(zhí)行父元素ul的事件處理程序了。
需要注意的是,在事件委派的情況下,事件處理函數(shù)中的this表示觸發(fā)事件的元素,即上述代碼中的第1個(gè)li亓素并不是委派事件的ul元素。
事件委派的優(yōu)勢(shì)在于,可以為未來(lái)動(dòng)態(tài)創(chuàng)建的元素綁定事件。其原理是將事件委派給父元素后,在父元素中動(dòng)態(tài)創(chuàng)建的子元素也會(huì)擁有事件。示例代碼如下。
<ul> <li>我是原有的li</li> </ul> <script> $("ul").on("click","li", function(){ alert(“單擊了li"); }); var li =$("<li>我是后來(lái)創(chuàng)建的li</li>"); $("ul").append(li); </script>
上述代碼中,第5~7行代碼通過(guò)事件委派的方式為ul中的li元素綁定了單擊事件,在執(zhí)行第8~9行代碼添加li元素后,新添加的li元素也可以觸發(fā)單擊事件。
猜你喜歡
【AI設(shè)計(jì)】北京143期畢業(yè)僅36天,全員拿下高薪offer!黑馬AI設(shè)計(jì)連續(xù)6期100%高薪就業(yè)
2025-09-19【跨境電商運(yùn)營(yíng)】深圳跨境電商運(yùn)營(yíng)畢業(yè)22個(gè)工作日,就業(yè)率91%+,最高薪資達(dá)13500元
2025-09-19【AI運(yùn)維】鄭州運(yùn)維1期就業(yè)班,畢業(yè)14個(gè)工作日,班級(jí)93%同學(xué)已拿到Offer, 一線均薪資 1W+
2025-09-19【AI鴻蒙開(kāi)發(fā)】上海校區(qū)AI鴻蒙開(kāi)發(fā)4期5期,距離畢業(yè)21天,就業(yè)率91%,平均薪資14046元
2025-09-19【AI大模型開(kāi)發(fā)-Python】畢業(yè)33個(gè)工作日,就業(yè)率已達(dá)到94.55%,班均薪資20763元
2025-09-19【AI智能應(yīng)用開(kāi)發(fā)-Java】畢業(yè)當(dāng)天offer率91%,薪資1W+占比54.2%,班級(jí)均薪12k+
2025-09-19