Meg*_*att 6 jquery dialog jquery-ui modal-dialog
我正在页面加载(使用$(document).ready(function() {
)上创建三个模态对话框.我通过调用setDialogWindows()
方法创建这些对话框,并将其传递给对话框的div.对话框创建代码如下:
function setDialogWindows($element) {
$element.dialog({
autoOpen: false,
modal: true,
show: 'blind',
hide: 'blind',
width: 600,
resizable: false,
buttons: {
Cancel: function() {
$(this).dialog('destroy');
},
'Save': function() {
$(this).dialog('close');
}
}
});
}
Run Code Online (Sandbox Code Playgroud)
我会省略对话框html,但是有一些jquery拖放功能,我想在用户单击取消时完全重置.因此$(this).dialog('destroy')
.但是,当我再次单击链接打开对话框时,它不会显示.我意识到这是因为我没有重新插入它,但我真的不能这样做,因为对话框是在页面加载时创建的.我尝试向Cancel函数添加一个递归调用,如下所示:
Cancel: function() {
$(this).dialog('destroy');
setDialogWindows($element);
},
Run Code Online (Sandbox Code Playgroud)
但这不起作用 - 当我点击应该打开它的链接时仍然没有打开.有没有办法重新创建对话框?关于我应该重新初始化对话框的任何想法,如果我现在唯一的地方是在document.ready上?
谢谢.
您可以将 setDialogWindows 移至单击处理程序并将 autoOpen 设置为 true,如下所示:
$('path/to/clickable/elements').click(function(){
setDialogWindows($element);
});
Run Code Online (Sandbox Code Playgroud)
这将在每次单击时初始化对话框,并在关闭时销毁它。
您还可以打开单独的对话框,一个具有拖放功能,另一个不具有拖放功能。
归档时间: |
|
查看次数: |
14400 次 |
最近记录: |