使用jQuery on()将事件处理程序绑定到click事件将不适用于将来的元素

时间:2014-02-10 14:51:41

标签: javascript jquery events

我正在尝试为将来的元素附加一个事件处理程序。 这是代码:

jQuery("#container").on("click", ".betslip_row .delete a", function(){
console.log(jQuery(this).data("outcomeId"));
});

每次将新赌注添加到betslip时,都会刷新(重新加载)。这就是我选择“#container”的原因。

这是链接:

http://bit.ly/1coBBIa

  1. 在控制台上运行代码
  2. 向betslip添加一些投注
  3. 逐个点击(x)标志
  4. 删除它们

    它应该在控制台上打印每个删除的赌注的“outcomeId”。但事实并非如此。这段代码有什么问题吗?

    提前感谢您的帮助。

    修改

    如果你在控制台上运行下面的代码,你可以在文件上点击任何地方看到目标元素及其内容,但(x)下注删除选项除外。

    jQuery(document).on('click', function(e){ console.log(e.target); }); 
    

    (x)单一投注删除有什么问题?为什么不发动事件或为什么我无法捕捉事件?

1 个答案:

答案 0 :(得分:0)

为了满足动态元素的点击,您可以执行以下操作:

        $(document).on('click', 'div.future-element-class-name', function () {
            // print object to console
            console.log($(this));
        });