我想创建一个新元素,并为该元素分配与它创建的 onclick 相同的事件。
$(function(){
var counter = 0;
$('.sub').click(function(event){
event.stopPropagation();
counter++;
$div = $(this); // makes more sense in the original code
$div.append('<div class="sub" title="subsub">subsub' + counter + '</div>');
//$div.find('.sub').click // <-- ?????
});
});
在我的演示中,我想为每个被单击的子创建一个新的子子。我想将相同的单击事件添加到新的 subsub 元素。
有人可以帮我解决这个问题吗? 我没有找到任何解决这个问题的方法。也许我没有正确的 google 或 SO 关键字:/
最佳答案
只需使用事件委托(delegate)
$(document).on('click', '.sub', function(event){
您的点击事件此时似乎工作正常,因为您正在使用 append
,它实际上将 new div
嵌套在被单击的 div 内。尝试使用after
,功能就会中断。
$(function(){
var counter = 0;
$(document).on('click', '.sub', function(event){
event.stopPropagation();
counter++;
$div = $(this); // makes more sense in the original code
$div.after('<div class="sub" title="subsub">subsub' + counter + '</div>');
});
});
<强> Check Fiddle
关于javascript - 在事件本身的新元素上分配点击事件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/18002568/