我可能做了一些愚蠢的事情。但如果我有一个正常的链接,例如:
<div id="changeMe"></div>
<a href="/Not/Intercepted" id="interceptMe">A link</a>
我将 jQuery 单击事件附加到链接,如下所示:
$('#interceptMe').click(function() {
$('#changeMe').text('Changed');
return false;
});
一切都很顺利。该页面不会被重定向到/Not/Intercepted,我认为这是正确的。
现在...
我在我的点击事件中引入了像 $.get 这样的 ajax 调用,现在我的页面将被错误地重定向到该页面,这实际上会覆盖 ajax 调用。
$('#interceptMe').click(function() {
$.get('/Ajax/Call', goesIn, function(comesOut) {
$('#changeMe').html(comesOut);
}, "html");
return false;
});
有没有办法让 jQuery 或 javascript 仍然拦截链接点击,这样它就不会转到 href 页面?我想为那些未启用 JavaScript 的用户保留 href。 TIA!
最佳答案
不要返回 false,而是使用 ....
$("#interceptMe").click(function(event){
event.preventDefault();
// Ajax here
return false; //for good measure
});
http://docs.jquery.com/Events/jQuery.Event#event.preventDefault.28.29
我在使用 IE 时遇到了很多问题,尤其是不听 return false。显然其他人也是如此http://coffeeandpaste.blogspot.com/2009/02/javascript-onclick-return-false-does.html
关于jquery - 使用 ajax 调用时如何拦截 jQuery 链接?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/788463/