手风琴菜单&的innerHTML

时间:2012-01-10 03:52:41

标签: ajax accordion innerhtml

我一直在使用共享软件JS手风琴式侧边栏(www.dynamicdrive.com/dynamicindex1/slashdot.htm)。它与基于PHP的HTML一起工作得非常好,但是没有使用AJAX。

侧边栏基于<div><span><a>元素构建。以下是JS代码的一部分:

for (var i = 0; i < this.submenus.length; i++)
    this.submenus[i].getElementsByTagName("span")[0].onclick = function() {
        mainInstance.toggleMenu(this.parentNode);
    };

如果我像下面这样使用硬编码的HTML(或用PHP构造相同的),它可以正常工作:

<div id="navbar_side" class="sdmenu">
<div><span>STUDENTS</span><a>Adding Students</a><a>Deleting Students</a></div>
</div> 

但是,如果我从:

开始
<div id="navbar_side" class="sdmenu"></div>

然后使用它:

document.getElementById("navbar_side").innerHTML="<div><span>STUDENTS</span><a>Adding Students</a><a>Deleting Students</a></div>"; 

菜单不会滑动。信息就在那里。 <a hrefs>所有工作(我在这里遗漏了)。但手风琴运动并没有 - 好...... - 移动!

这是为什么?很明显,菜单不是像PHP构造的那样读取AJAX构造的节点树。

谢谢, 尼克

1 个答案:

答案 0 :(得分:0)

建议您使用jQuery UI - Accordion重新开始工作。更清洁&amp;有效的。