Хотя у вас не может быть блока Sweet Alerts, вы можете использовать его функцию обратного вызова для запуска любого кода, который требует, чтобы предупреждение было отклонено в первую очередь. Примеры имеют несколько случаев этого. Например, если у вас есть предупреждение в стиле да/нет, есть пример удаления файла.
swal({
title: "Are you sure?",
text: "You will not be able to recover this imaginary file!",
type: "warning",
showCancelButton: true,
confirmButtonColor: "#DD6B55",
confirmButtonText: "Yes, delete it!",
cancelButtonText: "No, cancel plx!",
closeOnConfirm: false,
closeOnCancel: false
},
function(isConfirm){
//The callback will only fire on cancel if the callback function accepts an
//argument. So, if the first line were 'function () {' with no argument, clicking
//cancel would not fire the callback.
if (isConfirm) {
swal("Deleted!", "Your imaginary file has been deleted.", "success");
} else {
swal("Cancelled", "Your imaginary file is safe :)", "error");
}
});
Или пример AJAX:
swal({
title: "Ajax request example",
text: "Submit to run ajax request",
type: "info",
showCancelButton: true,
closeOnConfirm: false,
showLoaderOnConfirm: true,
},
function(){
setTimeout(function(){
swal("Ajax request finished!");
}, 2000);
});
В обоих из них обратный вызов не запускается до тех пор, пока не будет выполнено взаимодействие с предупреждением, а результат вызова передается в качестве аргумента обратного вызова.
Итак, скажите, что вам нужно подождать, пока кто-нибудь не нажмет «ОК».
swal({
title: "Delete your account?",
text: "Clicking on continue will permanently delete your account.",
type: "warning",
confirmButtonText: "Continue",
closeOnConfirm: false
}, function () {
swal("Deleted account", "We'll miss you!", "success");
});
Примечание. closeOnConfirm
/closeOnCancel
должно быть только false
, если вы отображаете последующее предупреждение в обратном вызове. Если установлено значение true
, второе предупреждение будет закрыто до того, как оно будет показано пользователю. Однако, если вы делаете что-то, не связанное с swal
, и оно не закрыто, оно останется открытым на неопределенный срок.
swal({
title: "Delete your account?",
text: "Clicking on continue will permanently delete your account.",
type: "warning",
confirmButtonText: "Continue"
}, function () {
console.log("This still shows!")
});
Если вы хотите, чтобы оповещение оставалось открытым, пока вы делаете что-то, не связанное с swal
, вы должны вызвать swal.close()
в конце своего кода.
swal({
title: "Delete your account?",
text: "Clicking on continue will permanently delete your account.",
type: "warning",
confirmButtonText: "Continue",
closeOnConfirm: false
}, function () {
console.log("This still shows!");
setTimeout(function () {
// This will close the alert 500ms after the callback fires.
swal.close();
}, 500);
});
person
Brandon Anzaldi
schedule
06.10.2015