我是javascript和jQuery的新手。我正在尝试使用jQuery UI小部件实现模式对话框。
使用“确定”和“取消”按钮可以正确显示模态对话框,但是对话框(“打开”)函数调用似乎没有阻止并等待“确定”或“取消”单击。例如,当我运行以下代码时
.....按钮点击
okToDelete = false; //a global variable
$('deleteDialog').dialog('open'); //this does not block but returns immediately
alert(okToDelete == true ? "ok" : "false");
首先显示警告框,然后显示那么模式对话框! okToDelete是一个全局变量,当我输入函数并在OK按钮回调中设置为true时,我将其设置为false。
这是我的对话框初始化函数
$("#deleteDialog").dialog({
bgiframe: true,
autoOpen: false,
modal: true,
overlay: {
backgroundColor: '#000',
opacity: 0.5
},
buttons: {
Cancel: function() {
$(this).dialog('close');
},
Ok: function() {
$(this).dialog('close');
okToDelete = true;
}
}
});
答案 0 :(得分:11)
这并不意味着“阻止”。如果要显示警报(我假设是用于测试)或在对话框关闭后调用其他函数,如果要将其放在callback
或ok
,cancel
函数中。
检查出来:
http://docs.jquery.com/UI/Dialog#event-close
来自文档的事件close
:
关闭对话框时会触发此事件
代码示例
提供一个回调函数来处理close事件作为init选项。
$('.selector').dialog({
close: function(event, ui) { ... }
});
按类型绑定到关闭事件:dialogclose。
$('.selector').bind('dialogclose', function(event, ui) {
...
});