我有几个div,当我悬停时,我想为悬停的div添加一个类,但同时我想为所有未悬停的div添加另一个类,这是我的代码:
我知道这是一个简单的解决方案,我有时会忽略(或者真的很累了)
HTML:
<div class="event"></div>
<div class="event"></div>
<div class="event"></div>
<div class="event"></div>
<div class="event"></div>
<div class="event"></div>
<div class="event"></div>
jQuery的:
<script type="text/javascript">
$( document ).ready(function() {
$( ".event" ).hover(
function() {
$(this).addClass("hovered");
}, function() {
$(this).removeClass("hovered");
}
);
});
</script>
答案 0 :(得分:0)
我想在悬停的div中添加一个类,但同时我想要 向所有未悬停的div添加另一个类
将元素保存在变量中,这样您就可以定位所有内容,而不是this
var elems = $( ".event" );
elems.hover(
function() {
$(this).addClass("hovered");
elems.not(this).addClass('something_else')
}, function() {
$(this).removeClass("hovered");
elems.not(this).removeClass('something_else')
}
);
答案 1 :(得分:0)
这里试试这个:
$('div').hover(function () { // on a hover on a div
$('div').attr('class', 'event'); // remove the class; keep the first one
$(this).attr('class', 'hovered event'); // update the class for the current
}
这使用jQuery API中的attr
来更新和替换属性值。希望它可以帮到你。
答案 2 :(得分:0)
您必须使用.not()
从整个元素集合中排除当前元素。
尝试,
<script type="text/javascript">
$( document ).ready(function() {
var xElements = $(".event");
$( ".event" ).hover(
function() {
xElements.not($(this)).addClass('anotherClass');
$(this).addClass("hovered");
}, function() {
xElements.removeClass("hovered");
$(".event").not($(this)).removeClass('anotherClass');
}
);
});
</script>
答案 3 :(得分:0)
使用not()
试试这个
$( document ).ready(function() {
var $event=$('.event');
$event.hover(function() {
$(this).addClass("hovered");
$event.not(this).addClass("newClass");
}, function() {
$event.not(this).removeClass("newClass");
});
});