如何停止多次启动JqueryUI模式对话框?

时间:2012-10-02 22:07:53

标签: jquery dialog modal-dialog

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

  1. 加载包含内容的div(包括脚本)。
  2. 其中一个脚本是JqueryUI Modal对话框的初始化 - 稍后在脚本中点击事件“打开”...即,它没有被初始化并同时打开。
  3. 点击事件会打开包含表单的模式。
  4. 提交表单后,进行ajax调用 - 将数据保存到数据库,然后导致“.load”函数重新加载整个div - 再次加载该组脚本(包括模态的初始化)
  5. THEN ...

    [编辑]

    第一次点击打开模态和表单,一切都很好。任何后续时间 - 表单和ajax调用都会多次运行。

    [/编辑]

    我觉得再次初始化模式会导致在点击事件触发时调用两个实例。

    Soo ..

    有没有办法(因为 - 记住 - 正在重新加载保存此代码的div - 是的,我已经尝试将它放在div之外..没有去)停止初始化再次发生?


    以下是我尝试使用$ .one函数:

    $("body").one("load", function(e){
        $("#scheduleMessagePopupDiv").dialog({
           autoOpen: false,
           height: 450,
           width: 340,
           modal: true,
           resizeable: false,
           dragable: false
        });
        alert("hello");
    });
    

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

1 个答案:

答案 0 :(得分:0)

在我看来,只需使用$.one()函数http://api.jquery.com/one/

就可以解决这个问题