我想使用jQueryUI对话框模仿标准的JavaScript confirm()。我在考虑以下内容,但我显然不明白它应该如何运作。有什么建议?谢谢
return $("#dialog-cancel").dialog("open");
$("#dialog-cancel").dialog({
autoOpen: false,height: 400,width: 350,modal: true,
open: function(event, ui){},
buttons: {'OK': function(){$(this).dialog("close");return true;},'CANCEL': function() {$(this).dialog("close");return false;}}
});
答案 0 :(得分:5)
副本确实没用。对不起,我很抱歉。
基于此answer,我会这样做:
创建一个函数,创建一个带有消息和OK / Cancel按钮的基本模态对话框
接受两个单击时执行的按钮的回调
好处是它不会像答案那样用无限循环来阻止整个浏览器。 jQuery UI对话框的选项modal
只是阻止当前页面。
以下是代码:
function confirmDialog(message, onOK, onCancel) {
$('<div>' + message + '</div>').dialog({
modal: true,
buttons : {
"OK" : function() {
$(this).dialog("close");
// if there is a callback, execute it
if (onOK && $.isFunction(onOK)) {
onOK();
}
// destroy the confirmation dialog
$(this).dialog("destroy");
},
"Cancel" : function() {
$(this).dialog("close");
if (onCancel && $.isFunction(onCancel)) {
onCancel();
}
$(this).dialog("destroy");
}
}
});
}
你可以这样使用它:
$('button').click(function(e) {
var okHandler = function() {
alert('ok');
};
confirmDialog('Do you really want ?', okHandler);
});
<强> DEMO 强>