jquery - Chrome : Seems to add an invisible border when hovering over a tr

标签 jquery html google-chrome html-table hover

我的 Chrome 在将鼠标悬停在表格内的 tr 元素上时似乎有一些问题。其他所有浏览器似乎都可以正常工作。 (Chrome 版本 15.0.874.121 m)。

我正在使用 jQuery 执行事件(是的,我需要使用 Javascript,因为我需要在用户将鼠标悬停在表上时实时更改表,所以 :hover 不是一个选项,即便如此,问题似乎也发生在那里)。

这是有问题的代码:

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="da" lang="da">
    <head>
        <title>:(</title>
        <script type="text/javascript" src="http://ajax.googleapis.com/ajax/libs/jquery/1.7.1/jquery.min.js"></script>
        <script type="text/javascript">
            $(document).ready(function() {
                $("tr").hover(function () {
                    $(this).css("background-color", "#aaaaaa");
                }, function() {
                    $(this).css("background-color", "#555555");
                });
            });
        </script>
        <style type="text/css">
            table, table tr, table tr td {
                border: 0px;
                border-spacing: 0px;
                border-collapse: collapse;
                padding: 0px;
            }
            table {
                width: 500px;
            }
            table tr {
                background-color: #555555;
                color: #FFFFFF;
            }
            /*table tr:hover {
                background-color: #aaaaaa;
            }*/
        </style>
    </head>
    <body>
        <table>
            <tr><td>test1</td><td>this1</td><td>in1</td><td>chrome1</td></tr>
            <tr><td>test2</td><td>this2</td><td>in2</td><td>chrome2</td></tr>
            <tr><td>test3</td><td>this3</td><td>in3</td><td>chrome3</td></tr>
            <tr><td>test4</td><td>this4</td><td>in4</td><td>chrome4</td></tr>
            <tr><td>test5</td><td>this5</td><td>in5</td><td>chrome5</td></tr>
            <tr><td>test6</td><td>this6</td><td>in6</td><td>chrome6</td></tr>
            <tr><td>test7</td><td>this7</td><td>in7</td><td>chrome7</td></tr>
        </table>
    </body>
</html>

这是在网络服务器上运行的代码:

http://www.jalsoedesign.net/test/tabletest/tabletest.php

当悬停在单个 TD 元素的最末端(或开始)时(即使该函数使用 TR),它似乎调用了“onmouseleave”javascript 函数。我也尝试过使用 onmouseover/onmouseout,但似乎没有什么不同。有什么想法吗?

编辑:

想通了。出于某些奇怪 的原因,在 td 元素上添加“position: relative”似乎可以解决这个问题。我不知道为什么会这样,所以如果有人有线索,请随时提供您的意见。 :)

2013 年 2 月 28 日更新:

这似乎不会发生在当前版本的 Chrome 中。

最佳答案

如前所述,但为了不让这个问题没有答案,解决方案是向所有 TD 元素添加一个 position: relative

关于jquery - Chrome : Seems to add an invisible border when hovering over a tr,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8503383/

相关文章:

jquery跨不同 Pane 的可排序列表

javascript - 仅使用 Chrome 绘制图像速度缓慢

google-chrome - Chrome 扩展 - 内容安全策略 - 执行内联代码

javascript - 使用 Ratchet 时有没有办法选择每个开关?

jquery - 设置图像 src 属性在 Chrome 中不起作用

javascript - jQuery:如何将可排序的 ('serialize' ) 数组从最后一个反转到第一个?

jquery - 当表单被动态添加到 DOM 时,检测 jQuery 中的表单提交

javascript - jquery 当字段不为空时验证

html - 从容器中显示 IFRAME 内的 DIV

html - 如此接近,但我似乎无法使用三列的固定页脚来工作......