0

好吧,伙计们,

我在使用 Jquery 为我必须使用的 CMS 制作手风琴菜单时遇到了一些问题。这个旧的 CMS 在 span 标签中分配“活动”项目类,而不是 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,尽管这可能没什么大不了的。

任何帮助,将不胜感激

问候

缺口

4

1 回答 1

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');
        }
      });
    });
于 2013-02-24T17:05:01.530 回答