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

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

最佳答案

不要返回 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/

相关文章:

jquery - 将一些对象添加到父级,它是具有相似 ID 的 DIV 之一

javascript - Laravel,无法弄清楚如何使用下拉菜单显示特定年份的主题

Javascript 与 MySQL 数据库交互

jquery - laravel中如何从ajax请求中获取数据

jquery - jqGrid 在创建后根据某些外部数据禁用列排序

javascript - jQuery HTML 追加导致 UTF-8 国家语言字符问题

ajax - 将 JSON 对象列表发送到 Spring MVC Controller

javascript - 使用 jquery ajax 中选择的 Jquery

相对于可以移动的元素的jquery定位

javascript - 我可以将 .load 函数与 document.referrer 函数结合起来吗?