Я знаю, что это может быть достигнуто через Обещание, но я изо всех сил пытаюсь выяснить, как.
jQuery('.parentDiv').on('click', '.link', function(e) {
jQuery.when(jQuery('.saveBtn').trigger('click', { 'evtData': 'link' })).then(function {
// rest of the logic that should be performed on click of .link
});
});
Щелчок .saveBtn
вызывает функцию с именем doAjax
:
jQuery('.saveBtn').on('click', function() {
doAjax()
});
function doAjax() {
var ajaxCall = jQuery.ajax(ajaxObject);
ajaxCall.done(function(data, status, xhr) {
//some logic go here
});
return ajaxCall;
}
Несмотря на это, логика внутри обработчика .then
выполняется сначала, т.е. до завершения doAjax
.
Я считаю, что мне нужно изменить jQuery.when(jQuery('.saveBtn').trigger('click',{'evtData':'link'}))
, так как он может не получитьОбещать состояние, которое он должен, и сразу же помечается как решенный, тем самым выполняя обратный вызов без ожидания ?.Я попытался вернуть doAjax в .saveBtn, но это также не имело значения.
Идеи, пожалуйста.