Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/xcode/7.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 没有子菜单时,需要单击LIA_Javascript_Jquery_Accordion - Fatal编程技术网

Javascript 没有子菜单时,需要单击LIA

Javascript 没有子菜单时,需要单击LIA,javascript,jquery,accordion,Javascript,Jquery,Accordion,嗨,我有一个手风琴菜单,所有的工作都很好,除非一个部分没有子类别,我需要链接到页面,而不是试图打开一个子菜单不存在 如何在代码中实现这一点 $.noConflict(); $(document).ready(function() { // Store variables var accordion_head = $('ul.accordion > li > a.item'), accordion_body = $('ul.a

嗨,我有一个手风琴菜单,所有的工作都很好,除非一个部分没有子类别,我需要链接到页面,而不是试图打开一个子菜单不存在

如何在代码中实现这一点

$.noConflict();
$(document).ready(function() {

        // Store variables

        var accordion_head = $('ul.accordion > li > a.item'),
            accordion_body = $('ul.accordion li > ul.sub-menu');


        // Click function

        accordion_head.on('click', function(event) {

            // Disable header links

            event.preventDefault();

            // Show and hide the tabs on click

            if ($(this).attr('class') != 'active'){
                accordion_body.slideUp('normal');
                $(this).next().stop(true,true).slideToggle('normal');
                accordion_head.removeClass('active');
                $(this).addClass('active');
            }

        });

    });
HTML

  <div class="Block CategoryList Moveable" id="SideCategoryList">

   <div class="BlockContent" id="dropDowns">
    <ul class="accordion">
    <li><a href="http://site-link.co.uk" >Main Category 1</a>
    <ul class="sub-menu">   <li><a href="http://site-link.co.uk" class="item">item 1</a>

    </li>   <li ><a href="http://site-link.co.uk" class="item">item 2</a>

    </li>   <li ><a href="http://site-link.co.uk" class="item" >item 3</a>

   </li>    <li ><a href="http://site-link.co.uk" class="item">item 4</a>

    </li></ul>

</li>   <li ><a href="http://site-link.co.uk" class="item">Main Category 2</a>

</li>   <li ><a href="http://site-link.co.uk" class="item">Main Category 3</a>


</li>
    </ul> 


只是猜测一下:

// Disable header links

// event.preventDefault(); - handle this below

// Show and hide the tabs on click

if ($(this).attr('class') != 'active'){
    accordion_body.slideUp('normal');
    var subMenu = $(this).next('ul');
    if (subMenu) {
      subMenu.stop(true,true).slideToggle('normal');
      event.preventDefault();
    }
    accordion_head.removeClass('active');
    $(this).addClass('active');
} else {
    event.preventDefault();
}
在这里,您可以更改,因为第一个没有类项

var accordion\u head=$('ul.accordion>li>a')

  // Disable header links
    if (  $(this).next().hasClass('sub-menu')  ) {
        event.preventDefault();
    } 

调用
jQuery.noConflict()
,然后立即使用
$
进行jQuery?发布html(菜单)结构,尝试对示例代码进行调整。只是相关部分。我们不需要链接指向的信息。另外,我的nederlands很差。这是一种在HTML中使用类属性的笨拙风格。@GuidoJansen我已经为您做了这件事,希望您现在能看得更清楚。