当我点击按钮时,我正在编写获取手风琴内容的代码。使用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>
答案 0 :(得分:2)
在不确切知道手风琴脚本如何工作的情况下,我假设是因为脚本假定初始化时#accordion
内的内容是脚本需要使用的内容。
如果你的实现可行,可以在div
(或者手风琴脚本为子节点指定的任何内容)中放置空#accordion
,然后动态填充它们。
否则,等待在#accordion
节点上初始化手风琴,直到返回AJAX调用。
答案 1 :(得分:0)
实际上我们只需要销毁并重新制作手风琴。这可以通过以下方式完成:
$('#accordion').append(xmlhttp.responseText).accordion('destroy').accordion();