2015-05-19 53 views
1

我有用jQuery打開/關閉的導航。我試圖做到這一點,當你點擊例如。第2項如果有其他項目被打開,它應該關閉它們。但現在我無法接近項目2.當在導航欄中打開一個項目時,關閉所有其他項目的寬度jQuery

$(document).ready(

function() { 
    $('a.has-child').click(function() { 
     $('div.child').not(this).removeClass("open"); 
     $(this).closest('li').find('div.child').addClass("open"); 
    }); 
}); 

這裏有一個小提琴:https://jsfiddle.net/mwcq0yek/

UPDATE:我能夠打開第4項和關閉第2項,反之亦然。但我無法單獨關閉第2項或第3項。

回答

3

刪除全部.child的課程。

$('div.child').removeClass("open"); 

然後添加類開放所點擊的元素

$(this).closest('li').find('div.child').addClass("open"); 

Demo

更新

,如果你想關閉.child子菜單中你需要做一個測試。如果該子菜單的類別爲open或者不是,則需要進行測試。

if (submenu.hasClass("open")) { 
     submenu.removeClass("open"); 
    } else { 
     $('div.child').removeClass("open"); 
     submenu.addClass("open"); 
    } 

updated demo

+0

打我太吧:) – Glen

+0

我很抱歉,我沒有提到,但我需要的如。項目2單獨關閉。我打開菜單並查看項目,打開其他菜單查看項目,當完成時我想關閉菜單。但我無法關閉它。 – Dzoni

+0

我更新了答案! :)它可以幫助你 –

相關問題