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