首页 > 解决方案 > 关闭灯箱有时会比输入时的 onblur() 更快

问题描述

我在on blur()输入上运行此代码。只要您不单击任何将您带到不同页面或关闭加载 ajax 函数和输入的灯箱(叠加层中的 div)的任何内容,它就可以很好地工作,因为 ajax 脚本有可能将被中止。我知道如果关闭浏览器窗口可能很难确保内容已保存on blur(),但有什么办法可以等到 ajax 请求(和任何链接点击)完成后再关闭灯箱(或移动在不同的页面上)?

我想另一种选择是on input()代替/以及on blur(),但是后来我收到了很多ajax请求并且需要开始节流对吗?我的灯箱插件(fancybox)有一个名为 的事件beforeClose,我可以在其中运行一些东西来检查是否发送了 ajax 请求吗?

如果我想错了,请告诉我。我知道 async false 并不是真的推荐,但也许我需要什么?

$.ajax({
    type: "POST",
    dataType: "json",
    url: "?a=ajax",
    data: { value: $self.val() },
    error: handleError
}).done(function(data) {
    if( data == "0" )
    {
        // no success
    }
    else
    {
        // success
    }
});

标签: javascriptjquery

解决方案


推荐阅读