2010-06-15 75 views
1

我有以下代码段。悬停在Mozilla中有问题 - 它会在悬停时更改颜色,但有时在我们出去时它不会恢复原状。请仅在有时发生这种情况。此外,在这种情况下,如果我使用FireBug检查HTML,我可以看到即使在悬停出局后也会分配额外类别。它在IE上可以正常工作。这是一个简化版本JQuery Hover无法正常工作Mozilla

也正如你所看到的,我设置颜色在TR上。但是这并不改变TR内文本框的颜色。如何确保TR中包含的控件的背景颜色在悬停时也发生了变化。

<style type="text/css"> 
     .HighLight 
     { 
      background-color:Fuchsia; 
     } 
     .Select 
     { 
      border:soild 2px Blue; 
      margin:3px; 
     } 
     </style> 
    <script type="text/javascript" src="jquery-1.4.2.js"> 

    </script> 
    <script type="text/javascript"> 
     $(function() { 
     $(".Select").hover(
      function() { 
       $(this).addClass("HighLight"); 
      }, 
      function() { 
       $(this).removeClass("HighLight"); 
      }); 
     }); 

ASP.NET Repeater Control生成的标记是一个TR分配了类选择的表。

<tr class="Select" > 
<td> 
<input type="checkbox" id="chkSelect" /> 
</td> 
<td> 
<input name="Repeater1$ctl11$tb" type="text" value="Sharp Bikes" id="Repeater1_ctl11_tb" /> 
</td> 
<td> 
<input name="Repeater1$ctl11$tb2" type="text" value="10/13/2004 11:15:07 AM" id="Repeater1_ctl11_tb2" /> 
</td> 
</tr> 

回答

0

如果生成此代码,那么jQuery代码可能不知道它。

您可能想尝试使用.live关键字,看看会发生什么。

此外,这可能不会产生影响,但我喜欢使用$(document).ready(而不是$(function(。个人喜好,但我从来没有这些问题。

+0

我不认为这是问题,因为当表单准备好并且基于Class而不是ID时应用了Jquery Selector。它也在IE中工作,主要在Mozilla中工作 – josephj1989 2010-06-15 03:16:21

0

你可以在Firefox中使用Firebug知道在哪里是问题。

,你需要把你的表标记,如this

1

好消息!我能够重新创建你的bug!

问题是你的jQuery选择器正在抓取类“Select”的所有元素。在悬停期间,您追加类“突出显示”,因此在微秒内,jQuery正在重写该元素的类定义,并且偶尔会将其从选择规则中删除。

试着改变你的jQuery选择:

$(".Select").hover(... 

到:

$("tr[class~='Select']").hover(... 

或更好,但改变你的悬停功能的内部直接影响元素风格:

//... 
function(){ 
    $(this).css('background',"fuchsia"); 
}, 
function(){ 
    $(this).css('background',''); //removes rule 
} 
//... 

..严重吗? Fuscia?