为了整理我的jQuery,我希望使用事件处理程序为各种元素创建一个“确认”类,这样我就可以启动快速确认框,以便用户确认他们的操作。
如果用户在确认框中单击取消,则应取消以下任何事件,但不应为永久性,例如,再次触发事件应显示确认并重新开始。如果我可以解决这个问题,我可以让任何敏感操作都有一个确认问题,以确保用户想要点击。
例如:
$('.confirm').click(function() {
if(!confirm('Are you sure?')) {
// Stop any other click events on $(this) from happening this instance.
}
});
$('.clicker').click(function() {
alert('it happened');
});
<a class="clicker confirm">Click me</a>
所需的输出是取消确认会取消点击事件,但不会完全禁用它。
答案 0 :(得分:5)
您可以使用jQuery中的event.stopImmediatePropagation()
:
$('.confirm').click(function(event) {
if(!confirm('Are you sure?')) {
event.stopImmediatePropagation();
// Stop any other click events on $(this) from happening this instance.
}
});
$('.clicker').click(function() {
alert('it happened');
});
答案 1 :(得分:0)
$('.confirm').click(function() {
return confirm('Are you sure?');
});
您还可以在点击事件中使用event.stopPropagation()
来阻止进一步传播。