2011-07-15 21 views
1

什么已经被改变为具有TD细胞与类“IMG”还强调,当鼠标越过C,d,E & F(产品图1是突出显示)和K & L(图3突出显示) - 不仅在定义“rowspan”(A,B,G,H & J)的“第一行”上?jQuery的:选择上述特定的接近/同级行当前

<table class="stripeMe" border="1">    
    <tr class="row1">     
    <td rowspan="3" class="img">Pic 1</td> 
    <td>- A -</td> 
    <td>- B -</td>     
    </tr>     
    <tr> 
    <td>- C -</td> 
    <td>- D -</td>     
    </tr>    
    <tr> 
    <td>- E -</td>  
    <td>- F -</td>     
    </tr>    
    <tr class="row1">     
    <td rowspan="1" class="img">Pic 2</td> 
    <td>- G -</td>  
    <td>- H -</td>     
    </tr>   
    <tr class="row1">     
    <td rowspan="2" class="img">Pic 3</td>  
    <td>- I -</td>  
    <td>- J -</td>     
    </tr>     
    <tr>  
    <td>- K -</td>  
    <td>- L -</td>     
    </tr>    
</table> 

CSS

tr.over td { 
    background-color: #f70; 
} 

jQuery的

$(document).ready(function(){ 
    $(".stripeMe tr").mouseover(function() { 
     $(this).addClass("over");}).mouseout(function(){ 
      $(this).removeClass("over");}); 
}); 

代码示例尝试:http://jsfiddle.net/9krDS/

回答

1

试试这个

$(document).ready(function(){ 
    $(".stripeMe").delegate("td", "mouseover", function() { 
    if($(this).closest("tr").hasClass("row1")){ 
     $(this).closest("tr").find(".img").addClass("over"); 
    } 
    else{ 
     var tr = $(this).closest("tr"); 
     while(!tr.hasClass("row1")){ 
      tr = tr.prev("tr"); 
     }  
     tr.find(".img").addClass("over");     
    } 

}) 
.delegate("td", "mouseout", function(){ 
     $(this).closest(".stripeMe").find(".img").removeClass("over"); 
}); 
}); 
+0

谢谢你的回答,但它不是我所期望的... 看看这里,你的代码的结果是什么:http://jsfiddle.net/Hh2wh/ 也许我不是很清楚我的想要达到的目标:我想要在所有的行A..L上鼠标悬停,突出显示相应的Pic 1..3,就像它在“第一行”(A,B,G,H和J) –

+0

@比利 - 你到底需要什么? – ShankarSangoli

+0

我之前要加快速度。关于你的问题,我的回答如上,根据我的评论。 –