我的菜单结构如下。必要的要求是:如何重置jQuery切换?
每个李必须是一个切换,它可以选择和取消选择项目1-4。可以在1-4的范围内选择多个li。因此,用户可以选择项目1 &项目3,并且它们的背景都将被突出显示。将鼠标悬停在任何项目和“All”li选项上时,应该有mouseOver/mouseOut背景更改。如果选择了一个项目,那么应该没有mouseOver/mouseOut的悬停状态。
最后,如果选择“全部”li,其余项目(如果选择)应该都重置其切换状态并取消选择。然后,如果在此之后选择了其他项目,则“全部”选择也应该自行重置。
这是我到目前为止,我有悬停状态正常工作的所有组件。当选择“全部”时,我不知道如何写复位所有项目1-4的解除绑定操作,因此项目1-4的'状态'复位,然后复位为“全部”如果选择了该按钮,则在之后选择项目1-4。
对不起很罗嗦,但我想尝试尽可能好地解释它,所以没有混淆。 :)
//css
.liselected{
background-color:#256ca0;
}
.lihoveron{
background-color:#eceef5;
}
$(document).ready(function() {
var startToggle = function(){
$('li[id|=nav]').toggle(
function() {
$(this).addClass('liselected').children().css('color','#ffffff');
$(this).removeClass('lihoveron');
},
function() {
$(this).removeClass('liselected').children().css('color','#5D788B');
}).mouseover(function() {
$(this).css('cursor','pointer');
}).hover(function() {
if ($(this).hasClass('liselected')){
}
else{
$(this).addClass('lihoveron');
}
}, function() {
$(this).removeClass('lihoveron');
});
};
startToggle();
});
<ul>
<li id="nav-all">
<a class="item" href="">
All Items
</a>
</li>
<li id="nav-item1">
<a class="item" href="">
Item 1
</a>
</li>
<li id="nav-item2">
<a class="item" href="">
Item 2
</a>
</li>
<li id="nav-item3">
<a class="item" href="">
Item 3
</a>
</li>
<li id="nav-item4">
<a class="item" href="">
Item 4
</a>
</li>
<li id="nav-item5">
<a class="item" href="">
Item 5
</a>
</li>
我认为标题解释了一切。我很想知道我自己:) – 2010-10-26 14:40:39
鉴于Nik的建议从下面我想出来。我会很快发布我的解决方案。 :) – ninu 2010-10-29 13:47:28