Есть проблема с выполнением двух свиит алертов подряд. На странице отображается страница со списком автомобилей. По двойному щелчку на строчку появляется свит алерт который спрашивает пользователя действительно ли он хочет оформить заказ. Если пользователь нажимает OK тогда ajax запрос отправляется на сервер и выполняет определённую логику по покупке автомобиля. Далее возвращает мне необходимую информацию и если всё успешно тогда я ищу в таблице по тому автомобилю который покупали, столбец количество на складе и убавляю число на еденицу. После чего вызываю ещё 1 свит алерт который говорит пользователю что тот успешно офрмил заказ. Если например количество автомобилей на складе 0 тогда пользователю выводиться соответсвующее сообщение в свит алерте. Так вот при первом запуске приложения всё отрабатывает успешно, а при дальнейших попытках без перезапуска приложения всё работает но последний(удачный или неудачный) свит алерт не выскакивает. Попробовал вытащить эти алерты в отдельную функцию и вызвал их с помощью setInterval хотя бы с задержкой в 100 миллисекунд тога всё отрабатывает хорошо. Подскажите пожалуйста в чём дело? Почему без задержки не отрабатывает нормально?
Вот мой код без задержки и с ней:
$('tbody').dblclick(function (e) {
swal({
title: 'Оформление заказа',
text: 'Вы уверены что хотите оформить заказ?',
type: "info",
showCancelButton: true
},
function (isConfirm) {
if (isConfirm) {
var carId = $(e.target).closest('tr').attr('id');
$.ajax({
type: "POST",
url: "/Home/CarPurchase",
data: {
"carId": carId
},
success: function (response) {
if (response.result) {
var count = $(".context-menu tbody tr[id=" + response.id + "] td[id=count]");
count.text(count.text() - 1);
swal({
title: "Заказ оформлен",
type: "success"
});
}
},
error: function (xhr) {
swal({
title: xhr.responseText,
type: "warning"
});
}
});
}
}
);
});
$('tbody').dblclick(function (e) {
swal({
title: 'Оформление заказа',
text: 'Вы уверены что хотите оформить заказ?',
type: "info",
showCancelButton: true
},
function (isConfirm) {
if (isConfirm) {
var carId = $(e.target).closest('tr').attr('id');
$.ajax({
type: "POST",
url: "/Home/CarPurchase",
data: {
"carId": carId
},
success: function (response) {
if (response.result) {
var count = $(".context-menu tbody tr[id=" + response.id + "] td[id=count]");
count.text(count.text() - 1);
setTimeout(Success, 100);
}
},
error: function (xhr) {
swal({
title: xhr.responseText,
type: "warning"
});
}
});
}
}
);
});
function Success() {
swal({
title: "Заказ оформлен",
type: "success"
});
}
Одно из предположений - обычно, если swal вызывается в функции обратного вызова другого swal, то первый swal может не успеть отработать до конца, и вызов внутреннего swal не последует. Можно попробовать дописать для первого опцию closeOnConfirm: false, чтобы избежать этого.
swal({
title: 'Оформление заказа',
text: 'Вы уверены что хотите оформить заказ?',
type: "info",
showCancelButton: true,
closeOnConfirm: false,
},
function (isConfirm) {..}
Виртуальный выделенный сервер (VDS) становится отличным выбором
Есть массив
нужно сделать линк /id+, а также нужно иметь /id - это 2 разные страницы но тянут схожую дату, сейчас структура pages/_id/indexvue и pages/_id/+
как определить с какой странный зашел человек, Россия или Украина, Либо совсем другая