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

rba*_*all 11 ajax jquery

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

<div id="changeMe"></div>
<a href="/Not/Intercepted" id="interceptMe">A link</a>
Run Code Online (Sandbox Code Playgroud)

我将jQuery点击事件附加到链接,如下所示:

$('#interceptMe').click(function() {
  $('#changeMe').text('Changed');
  return false;
});
Run Code Online (Sandbox Code Playgroud)

一切都很好用.该页面并没有重定向到/不/拦截,这就是我认为是正确的.

现在...

我在我的点击事件中引入了像$ .get这样的ajax调用,现在我的页面将被错误地重定向到页面,这基本上会覆盖ajax调用.

$('#interceptMe').click(function() {
  $.get('/Ajax/Call', goesIn, function(comesOut) {
  $('#changeMe').html(comesOut);
    }, "html");
  return false;
});
Run Code Online (Sandbox Code Playgroud)

有没有办法让jQuery或javascript仍然拦截链接点击,所以它不会转到href页面?我想保留那些没有启用javascript的用户的href.TIA!

Cha*_*ant 23

而不是返回false,使用....

$("#interceptMe").click(function(event){

    event.preventDefault();

    // Ajax here

    return false; //for good measure
});
Run Code Online (Sandbox Code Playgroud)

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