嗨,我是一名jQuery新手,正在尝试使用simplemodal插件。在此尝试之前,我的代码是

isYes = confirm("Are you sure . . . "?);
return isYes;


simplemodal演示执行URL重定向。我想以默认确认按钮的方式返回true或false。

这可能吗?

当我尝试此操作时(请参见下面的代码),将弹出模式对话框,但无需等待,而是继续进行底层的按钮操作,然后我才能单击任何东西!

这就是我所说的确认:

confirm(confirm_message, function(isYes) { return isYes; });




function confirm(message, callback) {
    var isYes = false;
    $('#confirm').modal({
        closeHTML: "<a href='#' title='Close' class='modal-close'>x</a>",
        position: ["20%", ],
        overlayId: 'confirm-overlay',
        containerId: 'confirm-container',
        onShow: function(dialog) {
            var modal = this;

            $('.message', dialog.data[0]).append(message);

            // if the user clicks "yes"
            $('.yes', dialog.data[0]).click(function() {
                isYes = true;
                // call the callback
                if ($.isFunction(callback)) {
                    callback.apply(this, jQuery.makeArray(isYes));
                }
                // close the dialog
                modal.close(); // or $.modal.close();

            });


        }
    });
    return isYes;
}

最佳答案

使这项工作的步骤:

1)从“否”按钮中删除simplemodal-close

2)在confirm.js中,更改:

// if the user clicks "yes"
$('.yes', dialog.data[0]).click(function () {
    // call the callback
    if ($.isFunction(callback)) {
        callback.apply();
    }
    // close the dialog
    modal.close(); // or $.modal.close();
});


至:

// if the user clicks "yes"
$('.buttons div', dialog.data[0]).click(function () {
    var link = $(this);
    // call the callback
    if ($.isFunction(callback)) {
        callback.apply(this, [link.hasClass('yes') ? true : false]);
    }
    // close the dialog
    modal.close(); // or $.modal.close();
});


3)同样在confirm.js中,更改:

confirm("Continue to the SimpleModal Project page?", function () {
    window.location.href = 'http://www.ericmmartin.com/projects/simplemodal/';
});


至:

confirm("Continue to the SimpleModal Project page?", function (response) {
    // do whatever you need to do with response
});


希望能有所帮助。

-埃里克

关于jquery - SimpleModal Confirm Override:希望回调返回true或false,而不是URL重定向,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/4765169/

10-10 22:17