我有以下设置: index.html with< div id =“container ”>< / div >使用锚方法我将不同的html内容加载到此容器中 我的内容包含模式对话框“dialog-form”的div,我使用回调
$.get("callback.php",query, function(data){ $("#container").html(data); initPos(); // here we run javascript to initialise modal dialog });在成功的ajax加载中使用index.html中包含的javascript中的自定义函数初始化它 一切正常,直到用户点击其他菜单(我们加载不同的内容),之后再次点击菜单与此模态对话框,所以页面再次加载,我们再次调用脚本(一切都还好),对话框打开,对话框中的信息已提交到服务器和成功的sumbit我想关闭第一次工作的
('#dialog-form').dialog('close');对话框,但不再有效,因为我们初始化了这个对话框两次并使用Firebug我可以看到两个不同的ui对话框实例同名被
div class="ui-dialog ui-widget ui-widget-content ui-corner-all ui-draggable ui-resizable"
当用户选择不同的菜单项时,如何清理它? 处理这个问题的正确方法是什么?有没有办法关闭多个具有相同名称的对话框?
答案 0 :(得分:0)
想出来。 从body中删除这个DIV - 在ajax回调插入函数InitializeDialog()
中的initPos()之前function InitializeDialog() { $("div").remove(".ui-dialog"); $("div").remove("#dialog-form"); }
一般
当您的Jquery UI对话框与<script>
标记一起返回以响应ajax调用时。在这种情况下,你必须删除如上所述的对话框div,然后进行ajax调用。
希望这有帮助!