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