0

这是场景 - 没有代码(这样更简单):

  1. 加载包含内容(包括脚本)的 div。
  2. 其中一个脚本是 JqueryUI 模态对话框的初始化——它在脚本稍后的单击事件中“打开”......即,它没有同时初始化和打开。
  3. 点击事件打开这个具有表单的模式。
  4. 提交表单后,将进行 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");
});

没用..警报永远不会触发...显然对话框从未初始化。

4

1 回答 1

0

在我看来,这可以通过简单地使用$.one()函数http://api.jquery.com/one/来解决

于 2012-10-03T00:47:16.090 回答