将类悬停在未选中的其他元素上-javascript
Hover class on other elements not on selected - javascript
HTML
<div>
<ul class="navBar">
<li class="selected"><a href="#">HOME</a></li>
<li><a href="#">WORKS</a></li>
<li><a href="#">ARTICLES</a></li>
<li><a href="#">ABOUT</a></li>
</ul>
</div>
CSS
.selected{
background-color: #CCCCCC;
}
.onHover{
display: block;
background-color: #0088FF;
}
JAVASCRIPT
$(function() {
$("ul.navBar li a").hover(
function(){
$(this).addClass("onHover");
},
function(){
$(this).removeClass("onHover");
});
});
我在这里想要的是javascript,当悬停在HOME链接上时,不要将"onHover"类添加到该链接,只添加其他三个链接。
您可以使用not((选择器不允许拾取项目。
$(function() {
$("ul.navBar li:not(.selected) a").hover(
function(){
$(this).addClass("onHover");
},
function(){
$(this).removeClass("onHover");
});
});
但是,如果你真的想要的话,你可以用纯CSS的解决方案来做到这一点。不需要JavaScript。
使用jQuery :not()
选择器不包括"selected"类。最好使用事件委派.on()
,而不是直接将事件绑定到元素,例如.hover()
。
请参阅http://api.jquery.com/not-selector/有关使用CCD_ 4的更多信息。
$(function () {
$(document).on('mouseenter', 'ul.navBar li:not(.selected) a', function () {
$(this).addClass('onHover');
});
$(document).on('mouseleave', 'ul.navBar li:not(.selected) a', function () {
$(this).removeClass('onHover');
});
});
参见小提琴:http://jsfiddle.net/4rZ3D/
相关文章:
- 如何在不影响其他元素的情况下扩展DIV
- 单击其他元素时,我如何使用 jQuery 忽略更改事件
- 从其他元素上的单击事件访问image src属性
- 单击其他元素或鼠标向上时隐藏输入框,但保留一次焦点
- 将一个元素放在具有相同z索引的其他元素前面
- 将href中的图像替换为其他元素中的图像
- JavaScript删除所有其他元素
- 如何在 *ngFor 列表中显示单击的元素,使用 Angular 2 隐藏其他元素
- 单击更改其他元素源
- JavaScript (w/jQuery) - 当被其他元素包围时,在悬停时增长一个元素以填充容器
- 如何使用可调整大小的元素重叠其他元素
- 如果所有其他元素都填写在AngularJS中,如何动态添加新的输入元素
- 更改包含其他元素的元素的文本
- 将静态标头置于所有其他元素之上
- jQuery或JavaScript获取靠近其他元素的元素
- 从中删除元素'的父元素,并将其附加到其他元素
- 获取更改跨度的值,使其显示为其他元素
- jQuery don'当元素被其他元素检索时,它不能正常工作
- 具有固定元素并填充有其他元素的页面
- Jquery索引与其他元素的关系