jquery - 鼠标悬停使表格单元格发疯

标签 jquery html css

我有一个表格,其中包含三个单元格,其宽度分别为 30%、40% 和 30%。表格本身的宽度为其容器的 25%,范围从 1024 像素到 400 像素不等。

第一个单元格是一个显示 GALLERY 的按钮。在悬停(td)时,其文本变为“<”(通过 jquery)。

问题是,当表格被压缩时(即:容器小于 600px),我将鼠标悬停在 GALLERY 按钮上时,单元格的宽度发生变化(因为它的 html 现在只是一个“< ”)。这会导致鼠标悬停区域被推开,并且单元格会在悬停状态之间快速来回切换。

单元格的宽度已定义,没有填充或边距,并且 overflow:hidden 已打开。

有人知道如何解决这个问题吗?我也遇到了与第三个单元格相同的问题。

这只发生在 firefox 中。

截图:

编辑:

j查询

$('td.back').hover(
    function() {
        $(this).empty().html('<').addClass("hover");
    },
    function() {
        $(this).empty().html('GALLERY').removeClass("hover");
    });

html

<table id="toolbar" style="display:none;">
      <tr>
        <td class="back" onclick="<?php 
          if ($gallery_id == "2") echo "goToGallery(1);";
          else echo "goToIndex();";
          ?>">GALLERY
      </td>

CSS

#toolbar td {
font-family:'helvetica',sans-serif;
font-size:11px;
color:white;
text-align:center;
cursor:pointer;
overflow:hidden;
-webkit-font-smoothing:antialiased;
}

#toolbar td.back {
width:30%;
}

#toolbar td.back:hover {
color:#e61b23;
}

最佳答案

这是因为表格不是固定宽度,所以当您将单元格内容更改为“<”时,td(和表格)会变小。即,您的 td 是宽度随内容变化的表格宽度的 30%。因此,它可能从 100px 宽表格的 30% 开始,然后更改为 40px 宽表格的 30%(例如,那些不是真正的 px 值),这会随着宽度的变化来回敲击您的内容。将表格或 td 设置为固定宽度,一切都会好起来的。 您还可以在 td 中放置一个固定宽度的 div,这样单元格就可以展开或收缩,但又可以防止内容跳来跳去。

关于jquery - 鼠标悬停使表格单元格发疯,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/16491250/

相关文章:

jQuery 限制返回的结果/选择

java - 我想用jsp将随机数据添加到html中的表中

jquery - 如果元素没有特定类,如何使条件起作用,在我的例子中是 "active"?

javascript - 如何将所有元素移动到另一个包装元素?

javascript - 以相同的形式重定向到不同的 URL

javascript - Angular JQuery UI 元素的可拖动副本

html - Mailchimp 选择加入确认 CSS

javascript - 如何让这个导航从右向左打开?

android - 如何在不丢失 css 的情况下将模板从桌面发送到移动设备

javascript - jquery在单击查询中的多个条目时显示div