如何延迟默认动作?

在jquery中,我需要延迟锚点的默认行为,以便在此期间,ajax post请求可以自行完成。

在.click事件中,preventDefault或返回false不会,因为我仍然需要导航到那些页面。 window.location = href明显失败,因为一些锚没有href属性而是使用javascript。 我不控制这些页面。

您只需在jQuery本身的ajax函数中使用’success’回调

$.ajax({ type: "POST", url: "some.php", data: "name=John&location=Boston", success: function(msg){ // do what you need to here return true; } }); 

然后它将等到Ajax完成后再继续成功回调

如果某些锚没有href,我想你将无法改变他们的行为。 对于其余部分,只需在click事件上使用超时并获取href,以便在超时结束后使用其回调函数重定向。