一尘不染

使用ajax调用时,如何截取与jQuery的链接?

ajax

我可能正在做一些愚蠢的事情。但是,如果我有一个像这样的普通链接:

<div id="changeMe"></div>
<a href="/Not/Intercepted" id="interceptMe">A link</a>

然后将jQuery click事件附加到链接,如下所示:

$('#interceptMe').click(function() {
  $('#changeMe').text('Changed');
  return false;
});

一切正常。该页面并 没有 重定向到/不/拦截,这就是我认为是正确的。

现在…

我将$ .get之类的ajax调用引入了click事件,现在我的页面将被错误地重定向到该页面,这实际上覆盖了ajax调用。

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

有没有一种方法可以使jQuery或javascript仍然拦截链接单击,使其不会转到href页面?我想为那些未启用javascript的用户保留href。TIA!


阅读 192

收藏
2020-07-26

共1个答案

一尘不染

代替返回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

2020-07-26