JQuery:在跟踪链接之前执行帖子

时间:2012-02-13 07:27:04

标签: javascript ruby-on-rails ajax jquery

当我网站上有人点击链接时,我需要向服务器发送异步帖子。我尝试了下面的代码,但它似乎没有在我想要的服务器上执行任务。我认为问题在于它会在某些事情发生之前跟踪链接。我实际上不需要等待来自服务器的响应,我只需要将它发送给它。谁能帮我吗?也许如何在调用之前延迟关注链接,或者我应该注意使用$ .post?

$("#item").click(function (ev) {
    $.post(link_to_something);
});

<a id="item" href="www.google.com">Link</a>

2 个答案:

答案 0 :(得分:3)

第一件事是通过从click处理程序返回false来取消链接的默认操作。这将为AJAX请求留出足够的时间来完成。完成后,在成功回调中,您可以重定向到链接所指向的位置:

$("#item").click(function (ev) {
    var self = this;
    $.post(link_to_something, function() {
        window.location.href = self.href;
    });
    return false;
});

答案 1 :(得分:0)

您必须检查回复以确定帖子是否成功,然后您应该继续。

$("#item").click(function (e) {
    e.preventDefault();
    $.post(link_to_something, function() {
        window.location = $(this).attr('href');
    });
});