从手风琴中的span中识别活动类

时间:2013-02-24 17:01:17

标签: javascript jquery ajax content-management-system accordion

好的伙计,

我在使用Jquery为我必须使用的CMS制作手风琴菜单时遇到一些问题。此旧CMS在span标记中分配“active”项类,而不是a或li。我需要能够通过激活span标签的代码设置活动标签,而不是像我已经的那样设置li锚标签。以下是例子:

        <script type="text/javascript">
        $(document).ready(function () {
          $('#amenu > li > a').click(function(){
            if ($(this).attr('class') != 'active'){
              $('#amenu li ul').slideUp();
              $(this).next().slideToggle();
              $('#amenu li a').removeClass('active');
              $(this).addClass('active');
            }
          });
        });
    </script>

CMS的示例输出如下:

<ul id="amenu">
    <li><a href="#">Home</a></li><li><span class="currentbranch0">
        <a href="">Content</a></span>
        <ul class="multilevel-linkul-0" title="">
            <li><a href="">Content 2</a></li>
            <li><span class="currentbranch1"><a href="">Content 3</a></span></li>
        </ul>
    </li>
</ul>

如果有人知道,我将如何解决这个问题呢?我有不同的组合,但一直打破锚链接。 此外,如果我在页面上手动设置锚定活动类,手风琴将不会扩展孩子,因为我将使用CMS虽然这可能不是那么大的交易。

任何帮助将不胜感激

此致

尼克

1 个答案:

答案 0 :(得分:0)

您只需在代码中引用类.closest('span')的地方添加active

    $(document).ready(function () {
      $('#amenu > li > a').click(function(){
        if ($(this).closest('span').attr('class') != 'active'){
          $('#amenu li ul').slideUp();
          $(this).next().slideToggle();
          $('#amenu li a').closest('span').removeClass('active');
          $(this).closest('span').addClass('active');
        }
      });
    });