Jquery 单击动态加载的内容迭代事件

Jquery 单击动态加载的内容迭代事件,jquery,dynamic,click,iteration,Jquery,Dynamic,Click,Iteration,我加载动态内容,如下所示: $('.cPopUpOverlay').fadeIn('fast'); $('.cPopUpOverlay').append('<div class=\'cPopUpContent\'></div>'); $('.cPopUpContent').load('popups/popup_1.php'); $('.cPopUpContent').fadeIn('fast'); 基本上,它会将“clicked”发送到控制台,删除popup_1.php

我加载动态内容,如下所示:

$('.cPopUpOverlay').fadeIn('fast');
$('.cPopUpOverlay').append('<div class=\'cPopUpContent\'></div>');
$('.cPopUpContent').load('popups/popup_1.php');
$('.cPopUpContent').fadeIn('fast');
基本上,它会将“clicked”发送到控制台,删除popup_1.php的内容并将其关闭

这一切都很好。除了当我打开弹出窗口时,控制台显示“单击”,当我重新打开弹出窗口时,它显示“单击(3)”。关闭并单击后,再次显示“已单击(6)”

每次我重新打开弹出窗口时,它都会执行n次单击,其中n是我打开弹出窗口的次数。这就像单击事件保留在某个位置,并一次又一次地执行,就好像每次打开弹出窗口时都会有一个额外的按钮,当.on('click')事件触发时,会对该按钮进行评估

我不明白这是为什么。我使用以下方法清除内容:

$('.cPopUpOverlay').fadeOut();
$('.cPopUpOverlay').html('');

有什么想法吗?

正如阿蒙纳迪尔建议的那样。。。我在每次单击时都重新声明了侦听器。很明显我错过了。对不起:-/

您能给我们看一下全部代码吗?似乎你在每次点击时都在重新澄清听众。太明显了。这里很尴尬。。。
$('.cPopUpOverlay').on('click', 'input[type=\'button\']', function() {
    console.log('clicked');
    $('.cPopUpOverlay').fadeOut();
    $('.cPopUpOverlay').html('');
}
$('.cPopUpOverlay').fadeOut();
$('.cPopUpOverlay').html('');