使用单个mousover / hover事件突出显示多个元素。 jQuery的

时间:2015-12-30 06:48:41

标签: jquery html hover

是否有任何机会在某些元素上mouseover(或任何其他)事件获取以下html

例如突出显示所有以前的单元格:

开始: class="selected"

带有onmouseover事件的

完成:单元格

#if mouse pointer is on the cell #4
<li id="1" class="reg"></li>
<li id="2" class="selected"></li>
<li id="3" class="in_range"></li>
<li id="4" class="in_range"></li>
<li id="5" class="reg"></li>
<li id="6" class="reg"></li>
<li id="7" class="reg"></li>
<li id="8" class="reg"></li>
<li id="9" class="reg"></li>
<li id="10" class="reg"></li>

#if mouse pointer is on the cell #6
<li id="1" class="reg"></li>
<li id="2" class="selected"></li>
<li id="3" class="in_range"></li>
<li id="4" class="in_range"></li>
<li id="5" class="in_range"></li>
<li id="6" class="in_range"></li>
<li id="7" class="reg"></li>
<li id="8" class="reg"></li>
<li id="9" class="reg"></li>
<li id="10" class="reg"></li>


#if mouse pointer is on the cell #8
<li id="1" class="reg"></li>
<li id="2" class="selected"></li>
<li id="3" class="in_range"></li>
<li id="4" class="in_range"></li>
<li id="5" class="in_range"></li>
<li id="6" class="in_range"></li>
<li id="7" class="in_range"></li>
<li id="8" class="in_range"></li>
<li id="9" class="reg"></li>
<li id="10" class="reg"></li>

1 个答案:

答案 0 :(得分:1)

正如你所说的所有以前的元素...

$("li").hover(function(){
    $(this).prevAll().not(":first").addClass("in_range");
});

<强>更新

<强> WORKING FIDDLE

使用.prevUntil()查找以前的兄弟姐妹,直到您找到第一个兄弟姐妹。为此,您必须更改第一个<li>的类名,就像我在UPDATED FIDDLE中所做的那样。

$("li").hover(function(){
    $(this).prevUntil(".not").addClass("in_range");
});