2012-11-13 14 views
6

tıklayın üzerindeki (istemci yerine getirin tıklayın olmak istedim) bu yüzden ancak hala bir şey olduğunu tahmin edemezler çalışma var : Ben "haber" tıkladığınızda böylece alt güzel aşağı kayar menü ve alt menüler düzgün çalışıyor var ve "haber" geri tıkladığınızda haber alt menüsünü ve ben openening sonra 'kaynaklar' tıklayarak Ancak eğer, geri kapatır ilgili alt menü belirir ancak haber 'alt menüsü açık kalır, bir önceki alt menüyü başka bir menü öğesine tıklarken veya ana menü alanı dışında herhangi bir fikir kapatıldığında kapatmak isterim? Burada ne var yani:açık ve kapalı alt menüler jquery click olayı ile alt menüler görüntüleyen bir ana menü jQuery

<ul id="MainMenu"> 
     <li><a href="#">Home</a></li> 
     <li><a href="#">About Us</a></li> 
     <li> 
       <a href="#">News</a> 
       <ul class="noJS"> 
       <li><a href="#">sub menu 1</a></li> 
       <li><a href="#">sub menu 2</a></li> 
       <li><a href="#">sub menu 3</a></li> 
       <li><a href="#">sub menu 4</a></li> 
       <li><a href="#">sub menu 5</a></li> 
       <li><a href="#">sub menu 6</a></li> 
      </ul>       
     </li> 
     <li><a href="#">Jobs</a></li> 
     <li><a href="#">Contact Us</a></li> 
     <li><a href="#">Admin</a></li> 
     <li> 
      <a href="#">Resources</a> 
      <ul class="noJS"> 
       <li><a href="#">sub menu 1</a></li> 
       <li><a href="#">sub menu 2</a></li> 
       <li><a href="#">sub menu 3</a></li> 
       <li><a href="#">sub menu 4</a></li> 
       <li><a href="#">sub menu 5</a></li> 
       <li><a href="#">sub menu 6</a></li> 
      </ul> 
     </li> 
     <li class="lastChild"><a href="#">New Button</a></li> 
    </ul> 

ve jquery:

$(function(){ 
$('#MainMenu').find('> li').click(function(){ 
    $(this).find('ul') 
    .stop(true, true).slideToggle(400); 
    return false;  
});  
}); 

cevap

7

Sadece koduna bu satırı ekleyin Bu

$(function() { 
    $('#MainMenu > li').click(function(e) { // limit click to children of mainmenue 
     var $el = $('ul',this); // element to toggle 
     $('#MainMenu > li > ul').not($el).slideUp(); // slide up other elements 
     $el.stop(true, true).slideToggle(400); // toggle element 
     return false; 
    }); 
    $('#MainMenu > li > ul > li').click(function(e) { 
     e.stopPropagation(); // stop events from bubbling from sub menu clicks 
    }); 
});​ 

http://jsfiddle.net/Ssu32/

+0

! Ancak ben seninkini kapalı gidermek böylece bir örnek yapabilir sayfa – Joxmar

+0

üzerine başka bir yere tıklandığında alt menüler kapatmak için alamıyorum? Sadece sorunun ne olduğunu varsayabilirim. Sanırım vücudunuza/html'ye tıklamanız ve öğeleri kaydırmanız gerekiyor –

+0

Bu işe yarar mı? http://jsfiddle.net/joxmar/m4Nwe/ – Joxmar

2

gibi bir şey deneyin

$('#MainMenu > li').not(this).find('ul').slideUp(); 

TAM KOD

$('#MainMenu').find('> li').click(function() { 
    $('#MainMenu > li').not(this).find('ul').slideUp(); 
    $(this).find('ul').stop(true, true).slideToggle(400); 
    return false; 
});​ 

çalıştığını Check Fiddle

+0

çok teşekkürler bu da çalışır. – Joxmar