2014-01-22 108 views
1

我已經創建了兩個單獨的類爲李其中包含&下箭頭背景圖像。刪除類添加類不工作

HTML

<ul class="menu"> 
<li class="main">Menu 1 
<ul class="submenu"> 
<li class="submenu_item">Sub menu 1</li> 
<li class="submenu_item">Sub menu 2</li> 
<li class="submenu_item">Sub menu 3</li> 
</ul> 
</li> 

<li class="main">Menu 2 
<ul class="submenu"> 
<li class="submenu_item">Sub menu 1</li> 
<li class="submenu_item">Sub menu 2</li> 
<li class="submenu_item">Sub menu 3</li> 
</ul> 
</li> 
</ul> 

CSS

li.main 
{display:block; 
background:#06C url(insert.png) top right no-repeat; 
margin-top:1%; 
} 

.remove 
{display:block; 
background:#06C url(remove.GIF) top right no-repeat; 
margin-top:1%; 
} 

腳本

$(".main:eq(0)").click(function() { 
    $(".submenu:eq(0)").slideToggle(400); 
    $(this).toggleClass("main remove"); 
    $(".submenu:eq(1)").slideUp(400); 
}); 

$(".main:eq(1)").click(function() { 
    $(".submenu:eq(1)").slideToggle(400); 
    $(this).toggleClass("main remove"); 
    $(".submenu:eq(0)").slideUp(400); 
}); 

當我點擊我需要的類會改變,但如果我MENU1菜單上再次點擊李2 課程也必須改變。

+0

當有人點擊菜單2,菜單1類將改變爲主, –

回答

2

如果你想讓它像一個手風琴,你可以這樣做:

$('.main').click(function() { 
    $(this).toggleClass("main remove").find('.submenu').slideToggle(400); 
    $(this).closest('li').siblings('.main').find('.submenu').slideUp(400); 
}) 

Fiddle Demo


我認爲你不需要效果基本show其他.main當一個.main點擊,所以只需使用:

$('.main').click(function() { 
    $(this).toggleClass("main remove").find('.submenu').slideToggle(400); 
}) 

Demo

+0

謝謝@Felix,但這不會改變背景圖像,如果我點擊菜單2 –

+0

@AtalShri vastava我不知道爲什麼,因爲我可以看到演示中的background-url已被更改。檢查我的更新以及 – Felix

+0

,如果再次點擊相同的菜單,將會改變,但如果菜單1打開並且有人點擊菜單2,它會關閉菜單1並打開菜單2,這樣做的箭頭也必須菜單打開或關閉時更改。 –

0

使用:first或與.eq()

$(".main").eq(0) 

,如果你有主的<li class="main">撥動類只適用.remove請改爲其他類

+0

不明白 –

+0

不理解你的答案@saman khademi –