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

Highlight several element with single mousover/hover event. Jquery

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>

正如您所说,要针对所有先前的元素...

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

更新

WORKING FIDDLE

使用 .prevUntil() 查找以前的兄弟姐妹,直到找到第一个。为此,您必须像我在 UPDATED FIDDLE.

中所做的那样更改第一个 <li> 的 class 名称
$("li").hover(function(){
    $(this).prevUntil(".not").addClass("in_range");
});