我正在尝试创建一个 jquery 对话框确认框。在下面的情况下,当我单击“单击确认框”时,应该会出现对话框。当用户选择 ok 或 cancel 时,这应该会消失,将有关按下哪个按钮的信息传递给调用函数。
我基本上从一个单独的解决方案中复制粘贴了以下代码,并进行了以下更改:我从另一个函数内部调用 myConfirm - 单击“click for..”时调用的函数。我不只是希望在加载页面时出现对话框(这似乎是我见过的大多数示例的情况)。结果是对话框根本没有出现。此外,如果我确实在脚本中直接调用 myConfirm,那么当我按下按钮时它不会关闭。我试过“关闭”而不是“破坏”
html
<head>
<meta charset="utf-8" />
<link rel="stylesheet" href="http://code.jquery.com/ui/1.9.1/themes/base/jquery-ui.css" />
<script src="http://code.jquery.com/jquery-1.8.2.js"></script>
<script src="/resources/demos/external/jquery.bgiframe-2.1.2.js"></script>
<script src="http://code.jquery.com/ui/1.9.1/jquery-ui.js"></script>
<link rel="stylesheet" href="/resources/demos/style.css" />
</head>
<a id = "confirm"> click for confirm box</div>
脚本
<script>
function myConfirm(dialogText, okFunc, cancelFunc, dialogTitle) {
$('<div style="padding: 10px; max-width: 500px; word-wrap: break-word;">' + dialogText + '</div>').dialog({
draggable: false,
modal: true,
resizable: false,
width: 'auto',
title: dialogTitle || 'Confirm',
minHeight: 75,
buttons: {
OK: function () {
if (typeof (okFunc) == 'function') { setTimeout(okFunc, 50); }
$(this).dialog('destroy');
},
Cancel: function () {
if (typeof (cancelFunc) == 'function') { setTimeout(cancelFunc, 50); }
$(this).dialog('destroy');
}
}
});
}
$('[id=confirm]').click(function () {
myConfirm( 'Do you want to delete this record ?',
function () {
alert('You clicked OK');
},
function () {
alert('You clicked Cancel');
},
'Confirm Delete'
);
});
</script>