Мне нужно вручную вызвать событие change
в меню.Но тогда мне нужно подождать, пока change
событие не завершится, тогда я выполню действие.
Вот что я пытаюсь сделать в коде
$('#menu').change(function(){
// do some work
// make multiple AJAX calls....
});
$('#button').click(function(){
$('#menu').val(5).change(); // once change is completed I want to do some logic here.
});
Это то, что я пытался, нопохоже, что он не ожидает завершения события change()
.
$('#button').click(function(){
$('#menu').val(5).change().promise().done(function(){
// do some work after the change() event is completed..
});
});
Как правильно выполнить код до завершения события изменения?
ОБНОВЛЕНО
Я попробовал следующее, но, похоже, не работает
$('#menu').change(function(){
makeAjaxCalls($(this).val());
});
$('#button').click(function(){
makeAjaxCalls(5, function(){
// do some work after the makeAjaxCalls() is completed..
});
});
function makeAjaxCalls(id, callback) {
var task = $.Deferred(function(){
// Make all ajax calls here...
});
$.when(task).then(function() {
if ($.isFunction(callback)) {
callback();
}
}).catch(function (error) {
console.log('something wrong... ', error);
});
}