【问题标题】:how to delay default action?如何延迟默认操作?
【发布时间】:2009-09-27 01:48:30
【问题描述】:

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

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

【问题讨论】:

    标签: jquery ajax


    【解决方案1】:

    您只需在 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 url 位置的链接。无法在成功回调中重定向。
    • 您只需在成功回调中检查是否定义了href,如果有没有则返回false。如果有,返回true。
    【解决方案2】:

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

    【讨论】:

    • 如果“其他”锚点使用 javascript 进行重定向,而您无法控制它,是的。
    猜你喜欢
    • 1970-01-01
    • 2016-04-04
    • 2015-10-08
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2010-11-18
    • 2014-05-08
    • 2017-07-14
    相关资源
    最近更新 更多