0
我加載動態內容是這樣的:點擊動態加載的內容迭代事件
$('.cPopUpOverlay').fadeIn('fast');
$('.cPopUpOverlay').append('<div class=\'cPopUpContent\'></div>');
$('.cPopUpContent').load('popups/popup_1.php');
$('.cPopUpContent').fadeIn('fast');
的popup_1.php有一些數據+一個簡單的按鈕。
<input type='button' id='btn_action_add' action='add' value='add'>
再次,從哪裏執行的第一4行的代碼的頁面存在,這是:
$('.cPopUpOverlay').on('click', 'input[type=\'button\']', function() {
console.log('clicked');
$('.cPopUpOverlay').fadeOut();
$('.cPopUpOverlay').html('');
}
基本上,它發送「點擊」到控制檯,並刪除popup_1.php的內容並關閉它。
這一切運作良好。除...當我打開彈出窗口時,控制檯顯示「clicked」,當我重新打開彈出窗口時,它顯示「clicked(3)」。再次關閉後,點擊它顯示「點擊(6)」
每當我重新打開彈出窗口,它會執行點擊n次,其中n是我打開彈出窗口的次數。這就像點擊事件保持在某個地方一樣,一次又一次地執行,就好像每次打開彈出窗口時都有一個額外的按鈕,在.on('click')事件觸發時會被評估。
我不明白這是爲什麼。我使用以下內容清除內容:
$('.cPopUpOverlay').fadeOut();
$('.cPopUpOverlay').html('');
任何想法?
你能告訴我們整個代碼嗎?看起來你是在每次點擊時重新聲明聽衆 – amenadiel
就是這樣。非常明顯。很尷尬在這裏... – nickvandyck