您好,登錄后才能下訂單哦!
關(guān)于on方法中的委托事件,官方JQ API如下:
http://api.jquery.com/on/#on-events-selector-data-handler
參考大牛阮一峰的博文:
http://www.ruanyifeng.com/blog/2011/08/jquery_best_practices.html
什么時(shí)候使用委托事件:
1.對(duì)未被創(chuàng)建的元素添加事件監(jiān)聽(tīng)
2.避免頻繁添加或刪除event handler,委托父元素來(lái)進(jìn)行事件處理
使用委托事件的優(yōu)點(diǎn):
1.大量減少監(jiān)聽(tīng)元素的開(kāi)銷(xiāo)
使用實(shí)例
$( "#dataTable tbody" ).on( "click", "tr", function() { console.log( $( this ).text() ); });
使用后果,不用每個(gè)tr都進(jìn)行事件綁定,只需要在tbody處進(jìn)行綁定即可,委托tbody進(jìn)行對(duì)tr點(diǎn)擊的響應(yīng)。
對(duì)于on的第二個(gè)參數(shù),官方API的解釋是:對(duì)觸發(fā)事件元素的后代元素的過(guò)濾
個(gè)人理解:
過(guò)濾之后,this變成tr,事件冒泡到tbody,然后對(duì)tr進(jìn)行操作。
其實(shí)on的底層是用了addEventListener,所謂的委托,其實(shí)就是借用事件冒泡機(jī)制,而且可以指定event.target和event.currentTarget(==this)來(lái)指定哪個(gè)事件對(duì)象
免責(zé)聲明:本站發(fā)布的內(nèi)容(圖片、視頻和文字)以原創(chuàng)、轉(zhuǎn)載和分享為主,文章觀點(diǎn)不代表本網(wǎng)站立場(chǎng),如果涉及侵權(quán)請(qǐng)聯(lián)系站長(zhǎng)郵箱:is@yisu.com進(jìn)行舉報(bào),并提供相關(guān)證據(jù),一經(jīng)查實(shí),將立刻刪除涉嫌侵權(quán)內(nèi)容。