Javascript jQuery悬停函数会导致闪烁

Javascript jQuery悬停函数会导致闪烁,javascript,jquery,Javascript,Jquery,当鼠标悬停在表的第一行上时,我试图显示一个div。这会导致闪烁。我怎样才能修好它 <%@ Page Title="Home Page" Language="C#" MasterPageFile="~/Site.master" AutoEventWireup="true" CodeBehind="Default.aspx.cs" Inherits="hovermouse._Default" %> <asp:Content ID="HeaderContent" r

当鼠标悬停在表的第一行上时,我试图显示一个div。这会导致闪烁。我怎样才能修好它

    <%@ Page Title="Home Page" Language="C#" MasterPageFile="~/Site.master" AutoEventWireup="true"
    CodeBehind="Default.aspx.cs" Inherits="hovermouse._Default" %>

<asp:Content ID="HeaderContent" runat="server" ContentPlaceHolderID="HeadContent">
</asp:Content>
<asp:Content ID="BodyContent" runat="server" ContentPlaceHolderID="MainContent">

    <script src="Scripts/jquery-1.4.1.min.js" type="text/javascript"></script>

    <script type="text/javascript">


        $(document).ready(


function () {

    $("table tr:first").hover(function () {
        $("#mydiv").show()
    },
            function () {
                $("#mydiv").hide();
            }
            );
}
        );
    </script>

    <div id="mydiv">
        you can see me</div>

    <table border="true">
        <tr>
            <td>
                hi
            </td>
            <td>
                hi
            </td>
            <td>
                hi
            </td>
            <td>
                hi
            </td>
            <td>
                hi
            </td>
        </tr>
        <tr>
            <td>
                hi
            </td>
            <td>
                hi
            </td>
            <td>
                hi
            </td>
            <td>
                hi
            </td>
            <td>
                hi
            </td>
        </tr>
        <tr>
            <td>
                hi
            </td>
            <td>
                hi
            </td>
            <td>
                hi
            </td>
            <td>
                hi
            </td>
            <td>
                hi
            </td>
        </tr>
    </table>
</asp:Content>

$(文件)。准备好了吗(
函数(){
$(“表tr:first”).hover(函数(){
$(“#mydiv”).show()
},
函数(){
$(“#mydiv”).hide();
}
);
}
);
你可以看见我
你好
你好
你好
你好
你好
你好
你好
你好
你好
你好
你好
你好
你好
你好
你好

哪个浏览器?它将在逻辑上闪烁,因为当您显示新的
时,它将替换被悬停的
,而
将不再悬停,从而产生无限循环。很多浏览器都不这样做,它们只在鼠标移动时应用悬停效果,但鼠标仍然可以移动一小部分并引起闪烁

这里最好的办法就是不要那样做。问自己几个问题:

  • 当用户将鼠标从
    上移开时,
    是否应该被隐藏
  • 这段代码的实际意义是什么?你想通过这个来完成什么
  • 应该实际替换
    ,还是应用了样式表来覆盖它?如果你没有,这就是你想要做的,那么就这么做
  • 以下是我根据您发布的内容整理的测试用例:


    如果您可以提供更完整的示例(例如,适用的样式和其他脚本),请提供。

    在实现悬停行为时,您不希望悬停目标因该行为而移动。在悬停操作期间,悬停目标在页面上的位置应该是固定的。在您的特定情况下,您可以将DIV放在表下方。。。另一种解决方案是不通过
    hide()
    隐藏DIV,而是将其
    可见性
    属性设置为
    隐藏
    ,这将隐藏DIV,但它仍将占用与以前相同的(垂直)空间。