如何防止去链接?

问题描述:

当用户点击ID ='yes'的某个<a>时,如何显示是/否提示,然后如果他点击是,我会正常进行,如果没有任何事情发生。如何防止<a>去链接?

+0

感谢您的答案!我有另一个问题。 preventDefault()是否永久禁用此操作?我希望如果用户再次单击相同的链接并按下yes,链接将执行。 – user725912 2011-04-27 13:06:17

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

正确的方法。 – 2011-04-27 09:16:39

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

这将做什么,如果他们不打在弹出的确认对话框OK,否则去的链接。您可以将#yes更改为不同的东西来覆盖更多标签,我个人对我希望最终用户确认的所有链接都有class="confirm"(因此$('.confirm')作为选择器)。

+1

'e.preventDefault();''是'e'作为回调函数的第一个参数是正确的方法。例如,如果您的回调函数在某处引发异常,并且因此您的'return false;'永远不会到达,它也可以工作。 – ThiefMaster 2011-04-27 09:15:30

+0

@ThiefMaster,好点 – Dunhamzzz 2011-04-27 09:19:04

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

Working demo.

如果你想使用一个不同的对话框,像灯箱或东西,你可以使用:

$("#yes").click(function(e) { 
    e.preventDefault(); 
    <call method show whatever dialog box you want to use> 
});