Отмечу, что этот код не является тем, что я построил, я просто делаю некоторые изменения пользовательского интерфейса с помощью плагина в системе, которая уже существует.
Я создаю плагин, который использует blockUI (да, мне нужно создать плагин с плагином), чтобы отображать значок загрузки по определенным элементам при запуске вызова Ajax, однако это, в частности, вызывает alert()
, если событие success()
не получает ответ, в котором он нуждается.
В результате этого мой загрузки значок вызова 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
, которую я создал в моем плагине?
Ошибка синтаксиса здесь: 'ajax: $ .post ('some.url'), {' вероятно, следует удалить ')' –
Просто увидел это, спасибо. Обновление сейчас. – Kehlan
Кроме того, 'jqXHR.error' обесценивается, вместо этого вы должны использовать .fail. –