Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/420.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/cmake/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 由于CMS输出导致JQuery手风琴问题_Javascript_Jquery_Ajax_Content Management System_Accordion - Fatal编程技术网

Javascript 由于CMS输出导致JQuery手风琴问题

Javascript 由于CMS输出导致JQuery手风琴问题,javascript,jquery,ajax,content-management-system,accordion,Javascript,Jquery,Ajax,Content Management System,Accordion,我有一个问题,因为我的CMS我使用的方式输出导航项目。我以前问过这个问题,并收到了一个解决方案,但由于JS不是我的强项,我不明白。简短的背景。My CMS输出一个菜单项,如: <ul id="amenu"> <li><a href="#">Home</a></li><li><span class="currentbranch0"> <a href="">Content</

我有一个问题,因为我的CMS我使用的方式输出导航项目。我以前问过这个问题,并收到了一个解决方案,但由于JS不是我的强项,我不明白。简短的背景。My 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>
但它不能像手风琴一样工作,请看这里的JSFIDLE:。我想我很快就能让它工作了,但由于我的JS技能充其量是基本的,我似乎无法控制它。我基本上需要菜单来展开(如果选择了第二级项目)并使用CMS输出的导航项目突出显示活动对象currentbranch1

谢谢!:)

尼克

编辑:只是要补充一点,手风琴不工作的主要问题是,即使对于第二级,CMS也会输出第一级,导致代码失败

<span class="currentbranch0"></span>
在这里拉小提琴

此外,我如何让小提琴自动打开帐户是链接被选中,第一级lis将实际链接到网络内容,而不是dummys


干杯

您正在选择li element的第一个子元素锚定链接

$('#amenu > li > a')
但是在HTML中,锚定链接是第二个子项

<li><span class="currentbranch1"><a href="">Content 3</a></span></li>
  • 此外,活动类不能通过您的方法进行检查,但您可以通过hasClass函数进行检查

    看看这把小提琴是否适合你


    您正在选择锚定链接,它是li元素的第一个子元素

    $('#amenu > li > a')
    
    但是在HTML中,锚定链接是第二个子项

    <li><span class="currentbranch1"><a href="">Content 3</a></span></li>
    
  • 此外,活动类不能通过您的方法进行检查,但您可以通过hasClass函数进行检查

    看看这把小提琴是否适合你


    您是否期望以下结果。请查看下面的链接

    只有js代码被更改

      $(document).ready(function () {
          $('#amenu > li > a,#amenu > li > span > a').click(function(){
              //alert($(this).closest("span[class*='currentbranch']").attr('class'));
            if ($(this).closest("span[class*='currentbranch']").attr('class') != 'active'){
              $('#amenu li ul').slideUp();
              $(this).parents('li').children('ul').slideDown();
              $('#amenu li a').closest("span[class*='currentbranch']").removeClass('active');
              $(this).closest("span[class*='currentbranch']").addClass('active');
            }
          });
    });
    

    您是否期望以下结果。请查看下面的链接

    只有js代码被更改

      $(document).ready(function () {
          $('#amenu > li > a,#amenu > li > span > a').click(function(){
              //alert($(this).closest("span[class*='currentbranch']").attr('class'));
            if ($(this).closest("span[class*='currentbranch']").attr('class') != 'active'){
              $('#amenu li ul').slideUp();
              $(this).parents('li').children('ul').slideDown();
              $('#amenu li a').closest("span[class*='currentbranch']").removeClass('active');
              $(this).closest("span[class*='currentbranch']").addClass('active');
            }
          });
    });
    
    用这个

      $('.currentbranch0').on('click', function(){
           $(this).next().slideToggle('slow');
      });
    
    看这个

    用这个

      $('.currentbranch0').on('click', function(){
           $(this).next().slideToggle('slow');
      });
    

    看看这个

    我想我们现在有进展了:)。当前Branch0类激活后,如何使手风琴展开?上面的代码在CMS上不起作用(手风琴在按下后直接向上滑动)。我想这是因为CMS激活了span?即使对currentbranch0分支的开头进行硬编码,如果选择它,也会很好:)我使用.click()这一事实会成为我的问题吗?我需要在加载时打开活动页面,事实上它不会在单击时打开,因为单击会将用户发送到另一个页面,在那里它应该打开我认为您应该添加您的内容基于cms的JSFIDLE。很难从上面的评论中分析你想要什么。干杯,用户,我在这里澄清了我的新帖子中的一些要点:)我想我们现在有进展了:)。当前Branch0类激活后,如何使手风琴展开?上面的代码在CMS上不起作用(手风琴在按下后直接向上滑动)。我想这是因为CMS激活了span?即使对currentbranch0分支的开头进行硬编码,如果选择它,也会很好:)我使用.click()这一事实会成为我的问题吗?我需要在加载时打开活动页面,事实上它不会在单击时打开,因为单击会将用户发送到另一个页面,在那里它应该打开我认为您应该添加您的内容基于cms的JSFIDLE。很难从上面的评论中分析你想要什么。为用户干杯,我在这里澄清了我的新帖子中的一些要点:)