手风琴没有从jsp脚本获取内部内容(HTML)

时间:2012-07-25 16:58:34

标签: html ajax jquery accordion

当我点击按钮时,我正在编写获取手风琴内容的代码。使用ajax调用从服务器接收手风琴的内部内容。这些内容显示在对话框中。

现在的问题是内容(最初应该是手风琴内容)可以在对话框中看作简单的html而不是手风琴(带按钮)。如果我只是在html文件中使用相同的内容(将从服务器收到的内容粘贴到“”中,它们工作正常,我可以在对话框中看到手风琴。

出了什么问题?是否需要事先给出手风琴内容。任何人都可以建议一种解决方法。 (手风琴的内容每次都会改变,因为它们是从服务器接收的原因)

Javascript功能是:

<script>
     $(document).ready(function() {
    $("#accordion").accordion({
    autoHeight: false
});
     </script>


<script language="javascript"> 

    function Faulttest() 
    {

    var xmlhttp;
    if (window.XMLHttpRequest)
    {xmlhttp=new XMLHttpRequest();}
    else
    {xmlhttp=new ActiveXObject("Microsoft.XMLHTTP");}
    xmlhttp.onreadystatechange=function()
    {
    if (xmlhttp.readyState==4 && xmlhttp.status==200)
    {
    Here we get the contents which should be inside the accordion which we receive from the server



> **document.getElementById("accordion").innerHTML=xmlhttp.responseText;**



    }
    }
    xmlhttp.open("GET","http://****/Anomalies/index.jsp",true);
    xmlhttp.send();
}

页面的Html内容是:

<body style="font-size:62.5%;"  >
        <div id="page">         
        <div id="header"><h1>header</h1></div>          
        <div id="body" >
            <h1>content top </h1>                       
        <div id="dia">
        <div id="dialog" title="Detailed FeedBack"><div id="accordion">

        // CODE SHOULD GO HERE


        </div>
            </div>
                </div>
   <button type="button" onclick="Faulttest();">Click Me!</button>  
  </body>

2 个答案:

答案 0 :(得分:2)

在不确切知道手风琴脚本如何工作的情况下,我假设是因为脚本假定初始化时#accordion内的内容是脚本需要使用的内容。

如果你的实现可行,可以在div(或者手风琴脚本为子节点指定的任何内容)中放置空#accordion,然后动态填充它们。

否则,等待在#accordion节点上初始化手风琴,直到返回AJAX调用。

答案 1 :(得分:0)

实际上我们只需要销毁并重新制作手风琴。这可以通过以下方式完成:

$('#accordion').append(xmlhttp.responseText).accordion('destroy').accordion();