jquery 中的通用函数 whit sweet alert 2 并替换 confirm

Generic function in jquery whit sweet alert 2 and replace confirm

我需要使用 sweet alert 2 创建一个类似于 jquery 中的确认函数的通用函数。

var eval = ConfirmModalDelete("mensaje text");
        alert(eval);

问题是调用函数 "ConfirmModalDelete" jquery 时没有等待 "swal".

的结果
function ConfirmModalDelete(mensaje) {

var retorno = false;

swal({
    title: 'Are you sure?',
    text: mensaje,
    type: 'warning',
    showCancelButton: true,
    confirmButtonColor: '#3085d6',
    cancelButtonColor: '#d33',
    confirmButtonText: 'Yes, delete it!'
}).then(function (result) {
    if (result.value) {

        retorno = true;
    }
});


return retorno;
}

结果总是"false"。

请帮忙。

------------------------------------编辑 09-07-2018-- ---------------------- 尤里卡! 解决办法就是:

 var fun = function()
 {
   alert("hello");
 }

 MensajeConfirm(fun);

然后:

function MensajeConfirm(func)
{
    swal({
        title: "title",
        text: "message",
        type: "warning",
        showCancelButton: true,
        confirmButtonText: "Confirm",
        cancelButtonText: "Cancel",
        showLoaderOnConfirm: true,
        allowOutsideClick: false,
        focusCancel: true
    }).then(function (eval) {

        if (eval.value) {
            //case press confirm
            func();
            //
        }
        if (eval.dismiss) {
            ///eval case esc|cancel
        }
    });
}

请使用'.done'功能:-

$("button").click(function() {
  swal({
    title: 'Are you sure?',
    text: 'mensaje',
    type: 'warning',
    showCancelButton: true,
    confirmButtonColor: '#3085d6',
    cancelButtonColor: '#d33',
    confirmButtonText: 'Yes, delete it!'
  } ).then(function (hello) {
    alert('dfasdfsd');
});
});
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
<script src="https://unpkg.com/sweetalert2@7.12.10/dist/sweetalert2.all.js"></script>
<button type="button">Click Me!</button>

确保您使用的是最新版本的 SweetAlert2。您的代码示例运行良好:

console.log(swal.version)
swal({
    title: 'Are you sure?',
    type: 'warning',
    showCancelButton: true,
    confirmButtonColor: '#3085d6',
    cancelButtonColor: '#d33',
    confirmButtonText: 'Yes, delete it!'
}).then(function (result) {
    console.log(result)
});
<script src="https://cdn.jsdelivr.net/npm/sweetalert2@7"></script>

PS。请注意 SweetAlert2 与 SweetAlert 略有不同,查看简单迁移指南:https://github.com/sweetalert2/sweetalert2/wiki/Migration-from-SweetAlert-to-SweetAlert2

创建回调函数并将其传递到您的函数中。

function handleOkClick(){
// do your stuff
}

function ConfirmModalDelete(mensaje, handleOkClick) {

swal({
    title: 'Are you sure?',
    text: mensaje,
    type: 'warning',
    showCancelButton: true,
    confirmButtonColor: '#3085d6',
    cancelButtonColor: '#d33',
    confirmButtonText: 'Yes, delete it!'
}).then(function (result) {
    if (result.value) {

        handleOkClick();
    }
});