我会注意到,这段代码不是我构建的,我只是在已经存在的系统上使用插件进行一些 UI 更改。
我正在构建一个使用blockUI的插件(是的,我需要使用插件构建一个插件),以便在触发 Ajax 调用时在某些元素上显示加载图标,但是这个特别调用了一个alert()
ifsuccess()
事件得不到它需要的回应。
结果是我在火灾fadeOut()
后alert
调用加载图标,这不是我想要的。
当我调用我正在构建的函数时,我会$.post()
完整传递我需要的设置和选项,如下所示:
$.fn.startLoading({
element: $("div"),
ajax: $.post('some.url',
{
//Ajax settings...
}, function (response) { //This is the success function, right?
if (good) {
//stuff
}
else
alert("Bad!"); //This happens BEFORE fadeOut()
}
}, 'text')
.error(function (msg) {
alert('Worse error!');
})
});
我的插件函数将所有这些作为一个options
参数,如下所示:
$.fn.startLoading = function (options) { ...
然后我像这样访问$.post()
电话:
if (options.ajax)
ajax = options.ajax;
这就是我卡住的地方。我需要确保在事件触发fadeOut()
之前发生。success
如何使用ajax
我在插件中创建的变量来做到这一点?