javascript - 在事件本身的新元素上分配点击事件

标签 javascript jquery

我想创建一个新元素,并为该元素分配与它创建的 onclick 相同的事件。

DEMO

$(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/

相关文章:

javascript - Phantom Js、CasperJs 外部脚本无法正确评估

javascript - 将 Javascript 对象转换为数组

javascript - 就地编辑链接

javascript - jQuery Draggable div 位置错位

jquery - 追加后同位素项目重新定位问题

javascript - 将 Javascript 变量插入 JSON 对象

javascript - 将 await 与 jsmediatags 结合使用

javascript - Highcharts 动态更新示例 - 每秒添加 1 个新值 - 没有历史数据

javascript - Mongoose 问题: schema not defined

javascript - 变量范围和事件监听器回调