2015-12-15 8 views
7

Mam demo 3. poziom nawigacji, który nie jest Triggerd poprawnie, nie pewny gdzie im brakuje cośjQuery 3. poziom nawigacji nie działa zgodnie z oczekiwaniami

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 
    ******************/ 

Doceń swoją pomoc!

Dzięki!

+0

Jak to nie działa poprawnie? Jaki jest problem? – ketan

+0

Myślę, że to z powodu twojego 'display: none! Important;' z '.dropdown-menu-sub', więc jQuery daje mu' display: block; 'ale nadal nie działa. – Tsumannai

+0

@ketan: jeśli klikniesz na 3. poziomie ul nie będzie wyświetlany –

Odpowiedz

0

Naprawiłem problem za pomocą jQuery "slideToggle & sibblings()", ponieważ ten HTML był tak skomplikowany, że znalazłem poprawny DOM Flow.

Wreszcie Stałe :-) 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' 
       }); 

     }); 
    }) 
Powiązane problemy