代码之家  ›  专栏  ›  技术社区  ›  josephj1989

jquery hover不工作Mozilla

  •  1
  • josephj1989  · 技术社区  · 15 年前

    我有下面的代码片段。mozilla有一个问题,它在mozilla中改变了悬停时的颜色,但有时当我们外出时它不会返回。请注意,它只是有时发生的。同样,在这种情况下,如果我使用firebug检查HTML,我可以看到即使在悬停结束后也分配了额外的类。它在IE上工作正常。这是一个简单的D版本

    正如你所看到的,我正在设置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转发器控件生成的标记是一个带有tr assigned class select的表。

    <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>
    
    4 回复  |  直到 15 年前
        1
  •  2
  •   turtlepick    15 年前

    我想说试试jquery mouseover(addclass)和mouseout(removeclass)。

    http://api.jquery.com/mouseover/

    祝你好运,

    弗拉维奥

        2
  •  1
  •   Jon Weers    15 年前

    好消息!我能重现你的错误!

    问题在于,jquery选择器使用类“select”获取所有元素。在悬停期间,您将附加类“highlight”,因此在一微秒内,jquery将重写该元素的类定义,并偶尔将其从select规则中删除。

    尝试更改jquery,从中选择:

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

    到:

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

    或者更好的是,更改悬停函数的内部以直接影响元素样式:

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

    真的吗?Fuscia?!

        3
  •  0
  •   griegs    15 年前

    如果生成了这个代码,那么jquery代码可能不知道它。

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

    而且,这可能没有效果,但我喜欢使用 $(document).ready( 而不是 $(function( . 个人喜好,但我从来没有这些问题。

        4
  •  0
  •   eos87    15 年前

    你可以使用 Firebug 在firefox中知道问题出在哪里。

    你需要把你的桌子标签,比如 this

    推荐文章