有没有办法让jQuery知道你刚刚推出了哪个div而没有使用id?
基本上我有以下情况:
如果用户将鼠标悬停在div上,则会变为红色。 如果用户将鼠标悬停在另一个div上,则所有div都将变为白色(基本上重置所有内容),当前悬停在div上的红色变为红色。 但是,如果用户翻过div将其变为红色,然后返回到同一个div,我不希望它返回白色然后再变为红色。
答案 0 :(得分:2)
鼠标悬停时添加一个类,然后再次鼠标悬停时检查该类是否存在。如果它没有,那么从所有div中清除该类。如果您不想使用课程,可以使用.data和.removeData:
$('div').on('mouseover', function() {
if (!$(this).hasClass('red')) {
$('div').removeClass('red');
}
$(this).addClass('red');
});
答案 1 :(得分:0)
当盘旋时,给它一个临时课:
$(this).addClass();
然后,当您准备删除它时,请使用:
$(this).removeClass();
答案 2 :(得分:0)
请勿使用:
HTML:
<div>
<span>1</span>
<span>2</span>
<span>3</span>
</div>
JS:
$("div span").click(function(){
$(this).closest("div").find("span").not(this).css("background", "#fff");
$(this).css("background", "#f00");
});
答案 3 :(得分:0)
这是另一种解决方案:http://jsfiddle.net/adeneo/ep39L/1/
var last;
$('div').mouseenter(function(e) {
var elm = $(e.target);
if (last != elm) {
$('div').css('background', 'white');
elm.css('background', 'red');
}
last=elm;
$('div').eq(2).html(last.index()+1);
});