【问题标题】:Accordion menus & innerHTML手风琴菜单和innerHTML
【发布时间】:2012-01-10 03:52:40
【问题描述】:

我一直在使用共享软件 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 构造相同的 HTML),它可以正常工作:

<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>"; 

菜单不滑动。信息都在那里。 &lt;a hrefs&gt; 全部工作(我在这里省略了)。但是手风琴运动并没有 - 嗯...... - 移动!

这是为什么?显然,菜单读取 AJAX 构建的节点树的方式与 PHP 构建的节点树不同。

谢谢, 尼克

【问题讨论】:

  • 实际上 jQuery UI 免费提供了一个不错的 Accordion 小部件。很好,AJAX 准备好了。
  • 是的,自从它停止工作以来,我一直在思考 jQuery。但如果我能让它再次工作,我会非常高兴!
  • 两种情况下的文档类型是否相同?
  • 是的,康坎。除了创建

标签: ajax accordion innerhtml


【解决方案1】:

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

【讨论】:

  • 是的,自从它停止工作以来,我一直在思考 jQuery。但如果我能让它再次工作,我会非常高兴!
猜你喜欢
  • 2011-05-01
  • 2014-03-31
  • 2011-05-10
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2012-02-20
  • 1970-01-01
相关资源
最近更新 更多