如何在$ .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请求后才能加载此链接?我真的不关心从请求中获取结果,我只是想在新页面加载之前发送它。
答案 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','')可能会也可能不会。