2014-01-22 109 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 –