2013-03-02 31 views
0

嗨,我有一個手風琴菜單,所有工作正常,除非如果一節沒有子類別我需要鏈接去頁面,而不是嘗試打開不在那裏的子菜單。li需要可點擊時,沒有子菜單

如何在此代碼中執行此操作?

$.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> 
+2

你叫'jQuery.noConflict()',然後立即使用'$'jQuery的? – 2013-03-02 16:51:35

+1

也發佈您的HTML(菜單)結構 – bipen 2013-03-02 16:54:42

+0

嘗試對示例代碼進行調整。只是相關的部分。我們不需要鏈接所在的信息。我的nederlands也很窮。 – HerrSerker 2013-03-03 12:03:41

回答

0

在這裏你去http://jsfiddle.net/davidchase03/WaQES/變化,因爲第一個犯規有類項目

var accordion_head = $('ul.accordion > li > a')

,並添加

​​
+0

太棒了!非常感謝,完美的作品:-) – user1475110 2013-03-03 15:08:26

0

只是拋出一個猜測:

// 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(); 
} 
+0

不錯的嘗試,感謝您的幫助,但他們仍然不會點擊! – user1475110 2013-03-02 17:37:13