js事件代理

事件代理在JS世界中一個非常有用也很有趣的功能。當我們需要對很多元素添加事件的時候,可以通過將事件添加到它們的父節(jié)點而將事件委托給父節(jié)點來觸發(fā)處理函數(shù)。

例如:

我們對對臺添加的某個元素添加點擊事件,動態(tài)添加的onclick事件必須要在append追加完元素之后添加進去才管用。但是有些有些事件,不僅僅是onclick事件就可以解決的,如果在onclick事件中還有$('.normal').each(function(){ })等之類的循環(huán),那么我們單純的靠onclick則解決不了,因為onclick你定位不到具體的某個類的元素上
開始我是這樣寫的:
動態(tài)生成的元素中寫了onclick事件,js中

function  aa(){
  $('.normal').each(function(){
     var _this=$(this);
    console.log('操作你的代碼');
  })
}

我發(fā)現(xiàn)會輸出兩次到控制臺
那么用事件代理就不會出現(xiàn)這些問題,他的原理是找一個不是動態(tài)添加的已有元素添加代理
如下我是給class="newshop"加的代理
給exchangeId添加的點擊事件

$('.newshop').click(function (ev) {//.exchangId
    var ev = ev || window.event;
    var target = ev.target || ev.srcElement;
    if (target.nodeName.toLowerCase() == 'p') {
        if ($(target).parent('dd').hasClass('exchangId'))   {
            var add = $(target);
            ......
         }
     }
});
最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時請結(jié)合常識與多方信息審慎甄別。
平臺聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點,簡書系信息發(fā)布平臺,僅提供信息存儲服務(wù)。

相關(guān)閱讀更多精彩內(nèi)容

友情鏈接更多精彩內(nèi)容