点击事件仅在第一次运行,而不是后续运行。我不明白为什么,任何帮助都会受到赞赏。
<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
按钮第二次可见,但不可点击。
答案 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();
});