Click事件只发生过一次

时间:2014-07-04 16:26:23

标签: jquery

点击事件仅在第一次运行,而不是后续运行。我不明白为什么,任何帮助都会受到赞赏。

<div class="image" id="image">
    <img src="blah.jpg">
    <div class="btn-edit">Edit</div>
</div>

我还尝试使用preventDefault()stopPropagation(),但错误仍然存​​在。 console.log语句只打印一次,因此后续点击事件未被注册。

$('.btn-edit').click(function(e){
    // e.preventDefault();
    // e.stopPropagation();
    console.log('edit clicked');
    var parent = $(this).parent();
    parent.hide();
    parent.prev().show();
});

在代码的另一部分,我再次显示了图像和编辑按钮,因此可以看到Edit按钮。我没有在这里展示,因为它并不真正相关。您可以假设Edit按钮第二次可见,但不可点击。

1 个答案:

答案 0 :(得分:0)

所以我改变了这个以使用事件委托,它可以工作。我想这就是事件委托存在的原因,所以你不要将点击事件绑定到类!感谢@ hjpotter92的建议!

$('.image').on('click', '.btn-edit', function(e){
    e.stopPropagation();
    console.log('edit clicked');
    var parent = $(this).parent();
    parent.hide();
    parent.prev().show();
});