javascript - 在窗口调整大小时重新计算表格高度

标签 javascript jquery html css

我有这个功能可以做三件事:

  • tr 悬停
  • 关注显示在同一行上的两个单独的表格
  • 计算第一个表的 tr 高度,并将该高度设置为第二个表的 tr。

<script>
$(function() {
    var rows = $('.interactive tr');
    rows.click(function () {
        var i = $(this).GetIndex() + 1; // nth-child is 1-based
        rows.removeClass('selectedRow');
        rows.filter(':nth-child(' + i + ')').addClass('selectedRow');
    });

    rows.hover(function(){
        var i = $(this).GetIndex() + 1;
        rows.filter(':nth-child(' + i + ')').addClass('hoverx');
    },function(){         
        rows.removeClass('hoverx');
    });

    $("table:first tr").each(function(i) {
        $("table:last tr").eq(i).height($(this).height());
    });
});

jQuery.fn.GetIndex = function(){
    return $(this).parent().children().index($(this));
}
</script>

这个函数很好用,但是调整浏览器大小时我遇到了问题,因为这个函数没有重新计算 tr 高度。

这会破坏所有的表格设计。

谁能帮我解决这个问题:如何在调整浏览器大小时从第一个表重新计算 tr 高度并从第二个表设置为 tr。

这是 fiddle 示例: http://jsfiddle.net/Ksb2W/59/

谢谢。

最佳答案

您需要将高度计算放在调整大小函数中,同时保持现有的高度不变,这样它就可以加载或移动到调整大小函数之前

$(document).ready(function(){
    $(window).resize(function() {
        // get first table tr height
        // apply to second table tr height
    });
});

你可以看到这里调用了resize http://jsfiddle.net/Ksb2W/103/

关于javascript - 在窗口调整大小时重新计算表格高度,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10530756/

相关文章:

javascript - 使用本地模块,使用本地依赖

jquery - 如何在标准 Web 表单 .Net 中返回 JSON 对象

html - 在 css 中倾斜一段,但保持每一行左对齐

html - 阻止 eslint 和 prettier 重新格式化 HTML 元素上的右括号

javascript - 在 if 语句仍然在页面中显示空对象之后

javascript - 光滑的轮播未捕获类型错误: undefined is not a function?

javascript - 更改图表类型并在 Highcharts 中使用多个系列重新绘制

javascript - 在框架的可内容编辑主体内的插入符号位置插入文本

jquery - 修复了使用鼠标滚轮滚动时元素闪烁的问题

javascript - jquery 向第一个 child 添加元素?