jQuery:如何将超链接加载为$ .get回调?

时间:2009-03-23 18:15:55

标签: jquery hyperlink

如何在$ .get请求消失之前延迟加载锚链接?我有

$("a.track").click(function() {
    $.get("track.php", { id: "page1.html" });
});

...但是在上述请求通过之前单击链接会加载新页面(我的PHP页面上的响应未被记录)。如果我使用return false;停止链接,则$ .get请求按预期工作,但现在链接未加载。

我想做的是做

之类的事情
$.get("track.php", { id: "page1.html" }, function() {
    return true;
});

...但是在执行此页面之前加载新页面,因此它无法按预期工作。

如何在发送GET请求后才能加载此链接?我真的不关心从请求中获取结果,我只是想在新页面加载之前发送它。

2 个答案:

答案 0 :(得分:6)

您可以将点击处理程序传递给回调,这会在成功时重定向该页面。

$("a.track").click(function(event) {
  event.preventDefault(); // Ignore user's click
  var href = $(this).attr('href');
  $.get("track.php", { id: "page1.html" }, function(data){
    window.location = href; // Redirect on success
  });
});

答案 1 :(得分:0)

$("a.track").click(function() {
    var that = this;
    $.get("track.php", { id: "page1.html" }, function(){
        $(that).attr('onclick', '').click();
    });
});

或类似的东西。你必须杀死你以前的点击事件处理attr('onclick','')可能会也可能不会。