使用ajax调用时如何拦截jQuery的链接?

时间:2009-04-25 07:38:32

标签: jquery ajax

我可能会做一些愚蠢的事情。但如果我有一个正常的链接,如:

<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!

1 个答案:

答案 0 :(得分:23)

而不是返回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上遇到很多问题,特别是没有听到返回false。显然有其他人http://coffeeandpaste.blogspot.com/2009/02/javascript-onclick-return-false-does.html