【问题标题】:jQuery accordion issue with template markup带有模板标记的 jQuery 手风琴问题
【发布时间】:2011-12-23 00:06:03
【问题描述】:

我对这个手风琴脚本有点问题。

而且我知道为什么会这样,但我无法修复它。而且我不确定是否可以修复它?

我使用的手风琴脚本就是这个,它很容易实现。 http://www.i-marco.nl/weblog/jquery-accordion-menu/

这个手风琴的标记是简单和语义化的。

<ul class="menu">

    <li>
        <a href="#">Link</a>
        <ul class="acitem">
            <li><a href="http://www.pivotx.net/">PivotX</a></li>
            <li><a href="http://www.wordpress.org/">WordPress</a></li>
            <li><a href="#four">four</a></li>
            <li><a href="http://www.textpattern.com/">Textpattern</a></li>
            <li><a href="http://typosphere.org/">Typo</a></li>
        </ul>
    </li>

    <li>
        <a href="#">Weblog Tools</a>
        <ul class="acitem">
            <li><a href="http://www.pivotx.net/">PivotX</a></li>
            <li><a href="http://www.wordpress.org/">WordPress</a></li>
            <li><a href="#four">four</a></li>
            <li><a href="http://www.textpattern.com/">Textpattern</a></li>
            <li><a href="http://typosphere.org/">Typo</a></li>
        </ul>
    </li>

    <!-- and so fourth -->

</ul>

这是脚本设计使用的标记样式。它有效,请看这里...http://jsfiddle.net/motocomdigital/CzZqZ/1/

但我的问题是因为我正在使用无法更改标记的模板,请参阅下面的输出标记。

<ul class="menu">

    <ul>
        <li>
            <a href="#">Link</a>
            <ul class="acitem">
                    <li><a href="http://www.pivotx.net/">PivotX</a></li>
                    <li><a href="http://www.wordpress.org/">WordPress</a></li>
                    <li><a href="#four">four</a></li>
                    <li><a href="http://www.textpattern.com/">Textpattern</a></li>
                    <li><a href="http://typosphere.org/">Typo</a></li>
            </ul>
        </li>
    </ul>

    <ul>
        <li>
            <a href="#">Weblog Tools</a>
            <ul class="acitem">
                    <li><a href="http://www.pivotx.net/">PivotX</a></li>
                    <li><a href="http://www.wordpress.org/">WordPress</a></li>
                    <li><a href="#four">four</a></li>
                    <li><a href="http://www.textpattern.com/">Textpattern</a></li>
                    <li><a href="http://typosphere.org/">Typo</a></li>
            </ul>
        </li>
    </ul>

</ul>

这个输出的标记是愚蠢的。

它的输出超出了它的需要。

我为上面的标记创建了一个 js fiddle,这样你就可以看到发生了什么http://jsfiddle.net/motocomdigital/CzZqZ/2/

当一个新的打开时,它不会关闭其他...

有谁知道如何修复脚本,使它像第一个 jsfiddle 一样工作,但上面有疯狂的标记?

如果有人能提供帮助,非常感谢。

乔什

【问题讨论】:

  • 即使使用有效的标记,它似乎也不起作用,jsfiddle.net/CzZqZ/8
  • 为什么ul在ul里而不在li里????
  • @KevinB 对我来说很好用,在 Firefox 和 Chrome 中测试过。

标签: javascript jquery jquery-ui-accordion


【解决方案1】:

在点击处理程序中,更改为:var parent = this.parentNode.parentNode.parentNode;。有了它,它就像您发布的另一个示例一样工作。

【讨论】:

  • jsfiddle.net/CzZqZ/9 - 在您发帖时正在测试。 ;-) 我也觉得不错。
  • 很抱歉,它得到了这么快的答复,所以不得不等待 7 分钟 - 分心了!谢谢
【解决方案2】:

将“noaccordian”类添加到您想要展开/折叠的“ul”元素中。

例子:

<ul class="menu">
    <ul class="noaccordion">
        <li>
            <a href="#">Click Here</a>
            <ul class="acitem">

【讨论】:

    猜你喜欢
    • 2013-02-06
    • 2010-09-18
    • 2017-06-17
    • 2014-10-23
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多