簡體   English   中英

jQuery事件並不總是觸發

[英]JQuery events not always firing

我正在開發完整的AJAX應用。 加載新的AJAX元素時,我使用回調在其上設置處理程序。 為了確保不試圖綁定一個不存在的元素,我將偵聽器放在某個父對象上。 例如我這樣做:

$el.on( 'click',"#popin a.closePopin", function(e) { 
        e.preventDefault();
        closePopin(); 
});

這有效... 80%的時間。

我的問題是,什么都不做,剩下的20%呢?

謝謝。

編輯:閱讀了第一個答案和評論后,我想弄清楚問題是在相同元素上隨機發生的,而沒有更新代碼。 $ el是一個固定的容器,永遠不會改變或消失,而ajax內容必然是它的后代。

為了避免這種情況,您不應該將委托事件附加到$el從而僅使與選擇器匹配的后代元素觸發該事件,而應將其附加到document

$(document).on('click', "#popin a.closePopin", function(e) { 
    e.preventDefault();
    closePopin(); 
});

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM