2015-12-15 12 views
7

我有3級導航演示是不是triggerd正確, 不知道在哪裏我在想念的東西jQuery的第三層導航無法正常運行

DEMO

JS:

$(function(){ 


$(".dropdown-menu").css("height","auto"); 
    $("#navigation div > .mobile-drop-button").on("click",function(e){ 
    alert('1st level'); 
     e.preventDefault(); 
     if(!$(this).next().next().hasClass("current")){  
      $(".dropdown-menu").removeClass("current");       
      $(".dropdown-menu").slideUp(); 
      $(this).next().next().addClass("current"); 

      $(this).find('img').attr('src','/sites/all/themes/enfamil_base/assets/images/up_arrow_white.png');    
      $(this).parent().siblings().find('img').attr('src','/sites/all/themes/enfamil_base/assets/images/down_arrow_white.png'); 
      $(".current").slideToggle(); 
     } 

    else{ 
     $(this).next().next().slideUp(); 
     $(this).next().next().removeClass("current"); 
    } 
     e.stopImmediatePropagation(); 
    }); 


    }); 





    /***** 
    3rd level SUB NAVIGATION STARTS 
    ******************/ 
    $('a.mobile-drop-button.sub img').on("click", function(e){ 
    alert('3rd level'); 
     $(this).addClass('activeSubNav') 

     $(".dropdown-menu-sub").show(); 
     e.preventDefault(); 
    }) 

    /***** 
     SUB NAVIGATION ENDS 
    ******************/ 

感謝您的幫助!

謝謝!

+0

它是如何工作不正常?什麼是問題? – ketan

+0

我認爲這是因爲你的'display:none!important;'.dropdown-menu-sub',所以jQuery給它顯示:block;但仍然無效。 – Tsumannai

+0

@ketan:如果你點擊第三級ul沒有被顯示 –

回答

0

我已經通過使用jQuery「slideToggle & sibblings()」修復了問題,因爲這個HTML非常複雜,所以我找不到正確的DOM Flow。

最後固定:-) JS:

$('#navigation .mobile-drop-button-sub').on('click', function(){ 
     var abc = $(this).closest('.menu-option-sub').find('.dropdown-menu-sub').css({'height':'auto'}).height(); 
     //$(this).closest('.menu-option-sub').find('.dropdown-menu-sub').closest('ul.dropdown-menu').css({'height': height + abc}) 
     $(this).closest('.menu-option-sub').find('.dropdown-menu-sub').closest('ul.dropdown-menu').css({'height': height + abc}) 
     $(this).closest('.menu-option-sub').find('ul.dropdown-menu-sub').slideToggle('fast', function(){ 
      $(this).css('height', abc); 
      $(this).closest('.menu-option-sub').siblings().find('ul.dropdown-menu-sub').css('display','none'); 
       /* $(this).closest('.menu-option-sub').parent('ul.dropdown-menu').css({ 
        'height':'auto' 
       }); */ 

       $(this).closest('.menu-option-sub').parent('ul.dropdown-menu').css({ 
        'height':'auto' 
       }); 

     }); 
    })