【发布时间】:2009-09-27 01:48:30
【问题描述】:
在 jquery 中,我需要延迟锚点的默认行为,以便在此期间,ajax post 请求可以自己完成。
preventDefault 或在 .click 事件中返回 false 是不行的,因为我仍然需要导航到这些页面。 window.location = href 显然失败了,因为某些锚点没有 href 属性而是使用 javascript。我不控制这些页面。
【问题讨论】:
在 jquery 中,我需要延迟锚点的默认行为,以便在此期间,ajax post 请求可以自己完成。
preventDefault 或在 .click 事件中返回 false 是不行的,因为我仍然需要导航到这些页面。 window.location = href 显然失败了,因为某些锚点没有 href 属性而是使用 javascript。我不控制这些页面。
【问题讨论】:
您只需在 ajax function for jQuery 本身中使用“成功”回调
$.ajax({
type: "POST",
url: "some.php",
data: "name=John&location=Boston",
success: function(msg){
// do what you need to here
return true;
}
});
然后它会等到 Ajax 完成后再进行成功回调
【讨论】:
如果某些锚点没有 href,我猜你将无法改变它们的行为。其余的,只需在点击事件上使用超时并获取 href 以便在超时结束后使用其回调函数进行重定向。
【讨论】: