使用xhr时,JQuery对话框关闭不起作用

时间:2014-08-06 15:07:23

标签: javascript jquery ajax

我尝试使用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;

让我知道有什么问题。

1 个答案:

答案 0 :(得分:0)

function closeMenu() {
    document.getElementById("dialog").parentNode.remove();
}

同样的工作。但我认为这不是一个好的解决方案。