【问题标题】:JQueryUI Accordion ScopeJQueryUI 手风琴范围
【发布时间】:2014-08-30 04:02:19
【问题描述】:

我正在尝试为我的网页设置 JQueryUI Accordion。我大部分时间都在工作,但它似乎排除了一些我打算在其中一个标题下包含的文本。

文本“Office for Macs”及其下方的链接应位于“远程访问支持”标题下,但它似乎显示在 Accordion 之外。

我已尝试多次更改标题选项,但均无济于事。这是我现在拥有的:

HTML:

<div class="category-tree">
    <section class="category">
        <h2>
            <a href="/hc/en-us/categories/200204910-Application-Support">Application Support</a>
        </h2>
        <i class="category-empty">
            <a href="/hc/en-us/categories/200204910-Application-Support">empty</a>
        </i>
    </section>

    <section class="category">
        <h2>
            <a href="/hc/en-us/categories/200204790-Mac-Support">Mac Support</a>
        </h2>
        <i class="category-empty">
            <a href="/hc/en-us/categories/200204790-Mac-Support">empty</a>
        </i>
    </section>

    <section class="category">
        <h2>
            <a href="/hc/en-us/categories/200208874-Windows-Support">Windows Support</a>
        </h2>
        <i class="category-empty">
            <a href="/hc/en-us/categories/200208874-Windows-Support">empty</a>
        </i>
    </section>

    <section class="category">
        <h2>
            <a href="/hc/en-us/categories/200208864-Mobile-Device-Support">Mobile Device Support</a>
        </h2>
        <i class="category-empty">
            <a href="/hc/en-us/categories/200208864-Mobile-Device-Support">empty</a>
        </i>
    </section>

    <section class="category">
        <h2>
            <a href="/hc/en-us/categories/200208854-Remote-Access-Support">Remote Access Support</a>
        </h2>

        <section class="section">
            <h3>
                <a href="/hc/en-us/sections/200592804-Office-for-Windows">Office for Windows</a>
            </h3>
            <ul class="article-list">
                <li >
                    <a href="/hc/en-us/articles/202884164-How-to-delegate-access-to-your-mailbox">How to delegate access to your mailbox</a>
                </li>
            </ul>
        </section>

        <section class="section">
            <h3>
                <a href="/hc/en-us/sections/200592794-Office-for-Macs">Office for Macs</a>
            </h3>  
            <i class="section-empty">
                <a href="/hc/en-us/sections/200592794-Office-for-Macs">empty</a>
            </i>
        </section>
    </section>
</div>

这里是 Javascript:

$(function() {
$( ".category-tree").accordion({
collapsible: true,
active: false,
header: 'h2'
});
});

我在这里创建了一个包含所有相关代码的 Fiddle:http://jsfiddle.net/ukq45wts/

关于如何告诉 JQueryUI 在最后一个标题下包含“Office for Macs”文本有什么想法吗?

提前谢谢你!

【问题讨论】:

  • 我缩进了您的标记以使其更具可读性,如果您更喜欢它的原样,请恢复编辑。
  • 批准编辑。感谢 Waxen - 我仍在尝试学习格式调整。

标签: javascript jquery html css jquery-ui


【解决方案1】:

删除“Office For Macs”上方的&lt;section class="section"&gt;,并在其中移动,如下所示:

<section class="section">
   <h3>
      <a href="/hc/en-us/sections/200592804-Office-for-Windows">Office for Windows</a>
   </h3>
<ul class="article-list">
   <li >
      <a href="/hc/en-us/articles/202884164-How-to-delegate-access-to-your-mailbox">How to delegate access to your mailbox</a>
   </li>
   <h3>
      <a href="/hc/en-us/sections/200592794-Office-for-Macs">Office for Macs</a>
   </h3>  
   <li class="section-empty"><a href="/hc/en-us/sections/200592794-Office-for-Macs">empty</a></li>
</ul>
</section>

</div>

小提琴:http://jsfiddle.net/ukq45wts/3/

【讨论】:

【解决方案2】:

&lt;i class="section-empty"&gt; 是什么?

应该是&lt;li class="section-empty"&gt;

【讨论】:

  • 你当然是对的 - 它应该是“li”,但 HTML 实际上是由我正在使用的 Web 服务创建的(我无法直接控制 HTML 的生成方式)。我正在尝试使用 jQueryUI 来获取自动生成的 HTML 并将其放入手风琴中。那有意义吗?我尝试在 Fiddle 中将它们全部更改为“li”,但这并没有解决问题。谢谢你的提问。
【解决方案3】:

您需要扩展“远程访问支持”以将 Office for Mac 包括在内。

HTML 标记

 <div class="category-tree"><section class="category">
  <h2><a href="/hc/en-us/categories/200204910-Application-Support">Application Support</a></h2>
  <i class="category-empty"><a href="/hc/en-us/categories/200204910-Application-Support">empty</a></i>
</section>

<section class="category">
  <h2><a href="/hc/en-us/categories/200204790-Mac-Support">Mac Support</a></h2>
  <i class="category-empty"><a href="/hc/en-us/categories/200204790-Mac-Support">empty</a></i>
</section>

<section class="category">
  <h2><a href="/hc/en-us/categories/200208874-Windows-Support">Windows Support</a></h2>
  <i class="category-empty"><a href="/hc/en-us/categories/200208874-Windows-Support">empty</a></i>
</section>

<section class="category">
  <h2><a href="/hc/en-us/categories/200208864-Mobile-Device-Support">Mobile Device Support</a></h2>
  <i class="category-empty"><a href="/hc/en-us/categories/200208864-Mobile-Device-Support">empty</a></i>
</section>

<section class="category">
  <h2><a href="/hc/en-us/categories/200208854-Remote-Access-Support">Remote Access Support</a></h2>
  <section class="section">
  <h3>
 <a href="/hc/en-us/sections/200592804-Office-for-Windows">Office for Windows</a>
</h3>

  <ul class="article-list">
    <li >

  <a href="/hc/en-us/articles/202884164-How-to-delegate-access-to-your-mailbox">How to delegate access to your mailbox</a>
</li>

  </ul>

<section class="category">
  <h3>
 <a href="/hc/en-us/sections/200592794-Office-for-Macs">Office for Macs</a>
</h3>

  <i class="section-empty"><a href="/hc/en-us/sections/200592794-Office-for-Macs">empty</a></i>
</section>



</section>

</section>
</div>

Working Fiddle

更新

在 Jquery 中,您指定手风琴的标题将是一个 h2 标记。然后手风琴控件将直接检查标签中的内容,该标签就在它下面作为兄弟。因此,如果您需要添加多个部分(如果支持远程访问),则需要将其包装在另一个部分中(我将其命名为多个部分)然后定义它。

因此 HTML 代码将如下所示:

<div class="category-tree">
    <section class="category">
         <h2><a href="/hc/en-us/categories/200204910-Application-Support">Application Support</a></h2>
 <i class="category-empty"><a href="/hc/en-us/categories/200204910-Application-Support">empty</a></i>

    </section>
    <section class="category">
         <h2><a href="/hc/en-us/categories/200204790-Mac-Support">Mac Support</a></h2>
 <i class="category-empty"><a href="/hc/en-us/categories/200204790-Mac-Support">empty</a></i>

    </section>
    <section class="category">
         <h2><a href="/hc/en-us/categories/200208874-Windows-Support">Windows Support</a></h2>
 <i class="category-empty"><a href="/hc/en-us/categories/200208874-Windows-Support">empty</a></i>

    </section>
    <section class="category">
         <h2><a href="/hc/en-us/categories/200208864-Mobile-Device-Support">Mobile Device Support</a></h2>
 <i class="category-empty"><a href="/hc/en-us/categories/200208864-Mobile-Device-Support">empty</a></i>

    </section>
    <section class="category">
         <h2><a href="/hc/en-us/categories/200208854-Remote-Access-Support">Remote Access Support</a></h2>

        <section class="multipleSections">
            <section class="section">
                 <h3>
 <a href="/hc/en-us/sections/200592804-Office-for-Windows">Office for Windows</a>
</h3>

                <ul class="article-list">
                    <li> <a href="/hc/en-us/articles/202884164-How-to-delegate-access-to-your-mailbox">How to delegate access to your mailbox</a>

                    </li>
                </ul>
            </section>
            <section class="section">
                 <h3>
 <a href="/hc/en-us/sections/200592794-Office-for-Macs">Office for Macs</a>
</h3>
 <i class="section-empty"><a href="/hc/en-us/sections/200592794-Office-for-Macs">empty</a></i>

            </section>
        </section>
    </section>
</div>

Working Fiddle - Updated

【讨论】:

  • 这确实有效,它让我相信我可能需要手动创建此 HTML 代码,而不是使用自动生成的(如我发布的那样)。在我走这条路之前,你知道有什么方法可以让 JQuery 忽略那些部分标签吗?如果我以后不必手动维护此代码会容易得多。感谢 V31!
  • 您要忽略哪个部分标签?
  • 最好是全部。如果 JQuery 可以配置为忽略部分标签,它不会切断“Office for Macs”文本。换句话说,我将 javascript 设置为查找 div 标记,并将标头设置为查找 h2 标记 - 为什么节标记被视为最后一个标头的停止点?谢谢
猜你喜欢
  • 2015-10-13
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2012-02-20
  • 1970-01-01
相关资源
最近更新 更多