【发布时间】:2013-12-06 20:38:59
【问题描述】:
在我的垂直导航中,我想突出显示上次单击且当前处于活动状态的列表项。突出显示是通过为列表项分配红色背景来完成的。我还想在鼠标悬停时突出显示列表项。问题是当悬停在其他列表项上时,我想暂时从活动列表项中删除活动类,并且当鼠标指针不再位于非活动列表项上时,该活动类再次分配给活动列表项。这是它在 JSFiddle 上的样子:http://jsfiddle.net/9r3tx/2/
这是一个 jQuery 函数,它将活动类分配给被点击的列表项:
//Add class active on click, firts li is active by default
$('.navigation li:first').addClass('active');
$(".navigation li a").click(function(e) {
$('.navigation li').removeClass('active');
$(this).parent().addClass('active');
});
这就是问题所在:
//Change classes on hover
$(document).ready(function(e) {
$(".navigation li a").hover(function(e){
$('.navigation li').removeClass('active');
$(this).parent().addClass('active');
});
});
我知道这会将活动类分配给悬停的链接,并保持不变,但我想暂时分配活动类,当指针位于该列表上方时,这将持续一段时间。
【问题讨论】:
-
为什么不直接使用css作为悬停状态呢?
.navigation li:hover a {} -
如果用户想要 jquery 并且用户只选择了 javascript 和 jquery,请使用 mouseleave。通过工作演示查看我的答案
标签: javascript jquery