这是场景 - 没有代码(这样更简单):
- 加载包含内容(包括脚本)的 div。
- 其中一个脚本是 JqueryUI 模态对话框的初始化——它在脚本稍后的单击事件中“打开”......即,它没有同时初始化和打开。
- 点击事件打开这个具有表单的模式。
- 提交表单后,将进行 ajax 调用 - 将数据保存到数据库,然后导致“.load”函数重新加载整个 div - 再次加载该组脚本(包括模式的初始化)
然后...
[编辑]
第一次单击打开模式和表单时,一切都很好。任何后续时间 - 多次运行表单和 ajax 调用。
[/编辑]
对我来说似乎很清楚,再次初始化模态会导致单击事件触发时调用两个实例。
苏..
有没有办法(因为 - 记住 - 保存此代码的 div 正在重新加载 - 是的,我已经尝试将它放在该 div 之外......不行)来阻止初始化再次发生?
这是我尝试使用 $.one 函数的方法:
$("body").one("load", function(e){
$("#scheduleMessagePopupDiv").dialog({
autoOpen: false,
height: 450,
width: 340,
modal: true,
resizeable: false,
dragable: false
});
alert("hello");
});
没用..警报永远不会触发...显然对话框从未初始化。