У меня есть следующий код, который использует функцию ajaxSuccess()
.Проблема, с которой я сталкиваюсь, заключается в том, что всякий раз, когда запрос AJAX завершается успешно, и jQuery запускает событие the ajaxSuccess
, все методы ajaxSuccess()
выполняются.
Я думаю, что лучшее решение - передать обратный вызов, но я не могу понять, как его использовать, поскольку я новичок в этом.
('#drop1').on('select2:select', (e) => {
const selectedMake = e.params.data;
utils.emptySelect2('#drop2');
utils.emptySelect2('#drop3');
utils.populateSelect2(`apiURL`, '#drop2');
$(document).ajaxSuccess(() => {
$('#drop3').select2('close');
$('#drop2').select2('open');
});
});
AJAX вызов:
populateSelect2(url, element, key) {
$.get(url)
.done((res) => {
if (res) {
let data = $.map(key ? res[key] : res, (obj) => {
obj.text = obj.name;
return obj;
});
data = sortBy(data, 'name');
$(element).select2({
placeholder: 'please enter',
data
});
}
})
.fail(() => {
this.showError(`Failed to call ${url}`);
});
}