小谜语:为什么这不适用于Chrome?

时间:2012-10-12 23:23:19

标签: javascript jquery

关于为什么以下代码在使用FF时完全“发布”的任何想法(我可以看到数据库更新)但在Chrome上失败了?

    $("a").click(function() {
$.post("ajax/update_count.php",  {site: 'http://mysite.com'});
     }); 

提示:jQuery版本为jquery-1.4.3.min.js

更新

问题似乎是当点击链接时,会加载一个新页面,这似乎会阻止Chrome中的帖子...这是一个可能的解释吗?如果是这样,我该怎么办?

1 个答案:

答案 0 :(得分:4)

您需要阻止<a>的默认行为。使用此:

$("a").click(function (e) {
    e.preventDefault();
    // Your code
});

或者,如果您确实希望链接加载新页面,您可以尝试:

$("a").click(function (e) {
    e.preventDefault();
    var href = this.href;
    // Might want to put a "loading" spinner on the page here
    $.post("whatever", {}, function () {
        window.location.href = href;
    });
});

可能需要稍微更改一下 - 也许使用$(this).attr("href")$(this).prop("href"),而不是this.href ...评估的差异可能会或可能不会与window.location.href一起使用(我确定两者都这样做。)