我尝试使用xhr aJax制作网页。
我通过xhr.responseText收到了Jquery Dialog。
A.jsp(实际查看的网页获取数据部分)
function getOrderData(tableid){
if(xhrGetOr) {
xhrGetOr.open("GET", "http://localhost:8080/Erpos/POS_orderAjaxGet.html?id="+tableid,true);
xhrGetOr.onreadystatechange = function() {
if(xhrGetOr.readyState == 4 && xhrGetOr.status == 200){
var dialog = $(xhrGetOr.responseText).appendTo('body');
viewdialog();
}
}
xhrGetOr.send(null);
}
}
当我单击某个按钮时,会调用getOrderData()并且在收到所有数据时,也会调用viewdialog()方法。因此,对话框显示在网页中。
POS_orderAjaxGet.jsp
<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>
一切都很好。但$(&#34;#dialog&#34;)。dialog(&#34; close&#34;)无效。所以我将closeMenu()函数移到了A.jsp。也没工作...... 纯POS_orderAjaGet&#39; closeMenu()非常好。 我认为A.jsp无法找到id&#39; dialog&#39;
让我知道有什么问题。
答案 0 :(得分:0)
function closeMenu() {
document.getElementById("dialog").parentNode.remove();
}
同样的工作。但我认为这不是一个好的解决方案。