Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/471.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript jqueryui对话框和pjax_Javascript_Jquery_Ajax_Pjax - Fatal编程技术网

Javascript jqueryui对话框和pjax

Javascript jqueryui对话框和pjax,javascript,jquery,ajax,pjax,Javascript,Jquery,Ajax,Pjax,我在一个web应用程序中使用pjax,它有一些jQuery UI对话框 我遇到的问题是,在创建对话框时,用于创建对话框的div元素从dom中的容器中移出 当pjax加载新页面时,对话框div不会被破坏,因为它不再存在于pjax加载内容的容器中。当pjax导航回带有对话框的页面时,它会加载div元素的第二个副本,并且由于dom中存在重复的元素,所有内容都会出现问题 有人找到了解决这个问题的好办法吗?有没有办法清理jQueryUI对话框调用所做的所有dom更改 我还应该提到,这个问题并不是pjax特

我在一个web应用程序中使用pjax,它有一些jQuery UI对话框

我遇到的问题是,在创建对话框时,用于创建对话框的div元素从dom中的容器中移出

当pjax加载新页面时,对话框div不会被破坏,因为它不再存在于pjax加载内容的容器中。当pjax导航回带有对话框的页面时,它会加载div元素的第二个副本,并且由于dom中存在重复的元素,所有内容都会出现问题

有人找到了解决这个问题的好办法吗?有没有办法清理jQueryUI对话框调用所做的所有dom更改


我还应该提到,这个问题并不是pjax特有的。如果我简单地使用$(“#mycontainer”).load(“page with dialog.html”)

将div样式设置为display:none并重复使用同一个样式,不要破坏它

<div id="dialog" class="ui-helper-hidden">
</div>


我总是在正文中保留对话div。它们应该是隔离的。假设我有main.html和dlgpage.html以及我的对话框main.html调用$(“#container”).load(“dlgpage.html”)。加载时,执行一些jquery将“dlg”转换为jquery UI对话框。对话框可以工作,但在dom中它现在已经移动到“container”div之外。如果main.html调用$(“#container”).load(“newpage.html”),则“container”div中的所有内容都将被删除并替换为新内容,但dialog元素仍保留在dom中。再次调用$(“#container”).load(“dlgpage.html”)将在DOM中复制mydialog。最后在pjax.js中添加一行以在加载新内容之前清理对话框。我想现在有用。