Jquery 如何检测何时删除单击事件?

Jquery 如何检测何时删除单击事件?,jquery,events,Jquery,Events,我正在生成一个动态DOM对象,如下所示: $('<div />') .append($('<img />').attr('src', 'blabla')) .click(function (e) { e.preventDefault(); alert('ok'); }) .appendTo('body'); $(“”) .append($(' 当然,代码要复杂得多。但是经过一段时间(一些事件(包括一些AJA

我正在生成一个动态DOM对象,如下所示:

$('<div />')
    .append($('<img />').attr('src', 'blabla'))
    .click(function (e) {
        e.preventDefault();
        alert('ok');
    })
    .appendTo('body');
$(“”)
.append($('
当然,代码要复杂得多。但是经过一段时间(一些事件(包括一些AJAX调用和DOM操作)),当我单击
img
时,再也没有发生任何事情了。代码中的某个地方删除了
click()
函数

我想知道什么时候


当有代码删除我的“
click()
”处理程序时,是否有方法创建断点/查找/正如您所说,您已经动态创建了所有内容。(div和image都有)

您需要将
。click()
处理程序与
。append()

这叫做

示例片段:-

$('').append($('

使用
img
上的类进行事件委派,例如

// this will bind click event on all images having class image only
$(document).on('click','img.image', function (e) {
    e.preventDefault();
    alert('ok');
});

你是否也在动态创建
$(“#mydiv”)
?是的,我正在动态创建所有
id
,每个元素都必须是唯一的。我希望你知道这不是问题,我在JavaScript方面比初学者稍高一点……我修改了我的问题,你让我走上了正确的道路。答案应该是:“首先将您的元素添加到DOM中,然后才能应用click()处理程序”。但不正常的是,clic()处理程序在任何DOM修改之前都在工作。是的。我的同事(3名开发人员)正在关注这个问题,我不是在做梦。^。@OlivierPons很高兴帮助您:):)。问题不是关于“事件委派”“不过……这是关于“动态添加DOM”
// this will bind click event on all images having class image only
$(document).on('click','img.image', function (e) {
    e.preventDefault();
    alert('ok');
});