2016-04-13 15 views
0

Benim JS kodu ile bir sorun var, bu kod megamenu ile bir div aktif ama aynı zamanda 2 megamenu açabilir, ben zaten mevcut megamenu tıkladıktan sonra ihtiyacım var için ikinci aktif. Bir fikrin var mı?JS ile Nav (çift açık)

$(function() { 
    $('.contentLink').click(function() { 
     $('.megamenu').hide(); 
     menu = $(this).next(); 
     if(menu.is(':visible')){ 
      menu.hide(); 
     }else{ 
      menu.show();  
     }   
    }); 
}); 

Live example

+0

: Bunu basitleştirmek için düzenlemek kodunuzu ettik

$('.megamenu').hide(); 

: önce

$(function() { var menuVisible = false; $('.contentLink').click(function() { var office = $(this).attr('data-office'); if (menuVisible) { $('#_' + office).hide(); $(this).removeClass('on'); menuVisible = false; return; } else { $('#_' + office).show(); $(this).addClass('on'); menuVisible = true; } }); }); <nav> <ul class="menu-links"> <li><a data-office="events" class="contentLink">Events</a> <div class="megamenu center" id="_events"> My mega menu events </div> </li> <li><a data-office="articles" class="contentLink">Articles</a> <div class="megamenu center" id="_articles"> My mega menu articles </div> </li> </ul> </nav> 
Neal

cevap

1

Evet, tüm megamenu gizlemek için click() fonksiyonu üzerine bu satırı ekleyin Lütfen sorunuza [çözülmüş] koymayın. Hepimiz bir cevap seçtiğini görüyoruz :-)
+0

Onun çalışmaları, çok teşekkürler. Ben sadece değiştirdim "menu = $ (this) .next();" "var menu = $ (this) .next();" Benim jquery sürümü ile uyumluluk için aksi takdirde bir hata var "menü undefined" Tekrar teşekkürler :) –

+0

Tamam, rica ederim :) –