当悬停在另一个元素上时,从元素中移除活动类
Removing active class from element when hovering on another
我有一个<ul>
,其中有七个<li>
项。第一个将在页面加载上有一个类active
,我想在另一个元素之一悬停时删除它,以及将active
类添加到悬停元素并保持最后一个悬停元素活动,即使鼠标离开该元素。我有下面的jQuery,它可以工作,除了它还从第一个活动元素中删除活动类,因为它切换它并删除类,这只在第一次悬停时,如果鼠标离开元素,活动类就会消失。谢谢!
$(".solutions-items li").hover(function() {
return $(this).toggleClass("solutions-items-active").siblings().removeClass("solutions-items-active");
});
<ul class="solutions-items">
<li class="solutions-items-active">1</li>
<li>2</li>
<li>3</li>
<li>4</li>
<li>5</li>
<li>6</li>
<li>7</li>
</ul>
如果您想在离开其他链接后返回活动类到原始链接:
(更新) ( hover
弃用)
$('nav ul li')
.on('mouseenter', function () {
$('nav ul li.active').removeClass('active'); // remove class from previous active item
$(this).addClass('active'); // item class to the current one
})
.on('mouseleave', function () {
$('nav ul li.active').removeClass('active'); // remove class from previous active item
active.addClass('active'); // item class to the current one
});
老:
var active = $('.active');
$('nav ul li').hover(
function () {
$('nav ul li.active').removeClass('active'); // remove class from previous active item
$(this).addClass('active'); // item class to the current one
},
function () {
$('nav ul li.active').removeClass('active'); // remove class from previous active item
active.addClass('active'); // item class to the current one
}
);
首先使用选择器$('.solutions-items li')
从所有列表项中删除solutions-items-active
类。然后将活动类添加到悬停的类中。
$(".solutions-items li").hover(function() {
$('.solutions-items li').removeClass('solutions-items-active');
$(this).addClass('solutions-items-active');
});
.solutions-items-active { color: red /* just for the demo */ }
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
<ul class="solutions-items">
<li class="solutions-items-active">1</li>
<li>2</li>
<li>3</li>
<li>4</li>
<li>5</li>
<li>6</li>
<li>7</li>
</ul>
试试这个…使用mouseenter代替hover
$(".solutions-items li").mouseenter(function() {
return $(this).toggleClass("solutions-items-active").siblings().removeClass("solutions-items-active");
});
JS文件:http://jsfiddle.net/0c1sanpn/
很简单,removeClass
&addClass
$('.solutions-items li').hover(function() {
$('.solutions-items-active').removeClass('solutions-items-active'); // remove class from previous active item
$(this).addClass('solutions-items-active'); // item class to the current one
});
https://jsfiddle.net/Ldovtjyn/相关文章:
- 在ajax成功后,cluetip不适用于首次点击活动元素
- 我如何为列出的选项卡元素编写一个Protractor测试,它会检查它是否's是否处于活动状态
- 仅悬停一个元素(活动元素)
- 如何在Slick Carousel中获取活动中的幻灯片元素
- 活动事件上的 HTML 元素
- 如何在每次页面重新加载时更改渐变背景,同时保持光标位置元素处于活动状态
- 如何在Javascript中获取HTML页面的活动元素
- 取消:活动元素样式
- Angular Bootstrap$modal与活动背景元素
- jquery上的手风琴.我无法关闭活动元素
- 是否可以使用chrome扩展名与非活动选项卡中的内容元素进行交互
- 将“活动”类添加到父元素和子元素
- 父元素悬停/活动/聚焦时隐藏元素
- 获取活动元素之后的下一个元素
- 如何获取活动时移动的输入元素的单击事件
- 为活动 li 元素提供不同的背景
- 单击元素时,JQuery 不会更改具有“活动”类的元素
- 无法设置活动菜单元素的样式
- 当内容为空但超链接处于活动状态时删除元素
- 如何设置引导模式对话框与背景元素活动