如何防止<a>标签跳转到链接?

3

当用户点击id='yes'的某个<a>标签时,如何显示一个是/否提示框?如果用户点击“是”,则继续正常操作,否则什么也不发生。


谢谢你们的回答!我有另一个问题。preventDefault()会永久禁用此操作吗?如果用户再次单击相同的链接并按“是”,我希望该链接能够执行。 - user725912
4个回答

9
$('#yes').click(function (e) { 
  if (!confirm('Message')) {
    e.preventDefault(); 
  }
});

3
$('#yes').click(function() {
    return confirm('Are you sure?');
});

如果用户没有在弹出的确认框上点击“确定”,则此操作将不起作用,否则它将转到链接。您可以更改#yes以覆盖更多标签,我个人在所有我想要用户确认的链接上都有class="confirm"(因此选择器为$('.confirm'))。


1
e.preventDefault(); 是正确的方式,其中 e 是回调函数的第一个参数。例如,如果你的回调函数在某处抛出异常,因此无法到达 return false;,它也能正常工作。 - ThiefMaster

0
$('#yes').click(function(e) { 
   if (!confirm("are you sure?")) { 
      e.preventDefault(); 
   } 
});

工作演示。


0
如果您想使用不同的对话框,比如 LightBox 或其他什么,您可以使用以下代码:
$("#yes").click(function(e) {
    e.preventDefault();
    <call method show whatever dialog box you want to use>
});

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接