Javascript 使用xhr时,JQuery对话框关闭不起作用
我正在尝试使用XHRAJAX制作一个网页 我通过xhr.responseText收到了Jquery对话框 A.jsp(实际查看页面的获取数据部分) 当我单击某个按钮时,会调用getOrderData(),当接收到所有数据时,还会调用viewdialog()方法。所以,对话框显示在网页中 POS\u orderAjaxGet.jspJavascript 使用xhr时,JQuery对话框关闭不起作用,javascript,jquery,ajax,Javascript,Jquery,Ajax,我正在尝试使用XHRAJAX制作一个网页 我通过xhr.responseText收到了Jquery对话框 A.jsp(实际查看页面的获取数据部分) 当我单击某个按钮时,会调用getOrderData(),当接收到所有数据时,还会调用viewdialog()方法。所以,对话框显示在网页中 POS\u orderAjaxGet.jsp <script> function viewdialog() { $( "
<script>
function viewdialog() {
$( "#dialog" ).dialog({
closeOnEscape: false,
autoOpen: true,
resizable: false,
draggable: true,
move:false,
height:830,
width:1085,
modal: true,
position:[0,0]
});
}
function closeMenu() {
alert("close event"); // this is well displayed
$( "#dialog" ).dialog("close");
}
</script>
<body>
<div id="dialog" title="order">
<input id="ocancel"type="button" class="btn" value="close"
onclick="closeMenu();">
</div>
</body>
函数viewdialog(){
$(“#对话框”)。对话框({
closeOnEscape:错误,
自动打开:对,
可调整大小:false,
真的,
动议:错,
身高:830,
宽度:1085,
莫代尔:是的,
位置:[0,0]
});
}
函数关闭菜单(){
警报(“关闭事件”);//显示良好
$(“对话框”)。对话框(“关闭”);
}
一切都很好。但是$(“#dialog”).dialog(“close”)不起作用。所以我将closeMenu()函数移到了A.jsp。也不工作。。。
纯POS_orderAjaGet的closeMenu()非常好用。
我认为A.jsp找不到id“dialog”
让我知道有什么问题
function closeMenu() {
document.getElementById("dialog").parentNode.remove();
}
这是同样的工作。但我认为这不是一个好的解决方案。我肯定会将包含
viewdialog
和closeMenu
的脚本标记保留在A.jsp中,而不是保留在返回的对话框内容中。AJAX的好处之一是使页面性能更高;减少通过网络发送的内容量。也就是说,您的代码结构在我看来是正确的。只要jQuery被正确地加载到页面中,并且您没有将内容加载到iFrame或其他选项卡中,就好像发生了其他事情。如果你有一个在小提琴或jsbin中的复制案例,你应该发布它。当我通过chrome开发者控制台检查页面时,我做到了。但我不太明白。无论如何,dialog div有父div。所以,我使用document.getElementById(“dialog”).parentNode.remove();它的工作原理类似于$(“dialog”).dialog(“close”)。
function closeMenu() {
document.getElementById("dialog").parentNode.remove();
}