嗨,我是一名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/