Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/jquery/78.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
在Google Chrome中,jQuery操作后未正确刷新表_Jquery_Html_Google Chrome - Fatal编程技术网

在Google Chrome中,jQuery操作后未正确刷新表

在Google Chrome中,jQuery操作后未正确刷新表,jquery,html,google-chrome,Jquery,Html,Google Chrome,我做了一个决定。但是,经过最近的一些改变,它在Firefox3.6中看起来不错,但在Google Chrome中却显示出相当糟糕的显示异常。在JavaScript代码更改了表头行的位置后,它似乎没有刷新/重画表头行 特别值得注意的是,当浮动表标题行位于表的中间位置时,您可以快速向上滚动:它会在表的中间留下标题行的副本,并且不会正确地重新绘制表 源代码在一个文件夹中 如果有人能告诉我一个干净的解决方案,让它在Google Chrome中正确刷新显示,我将不胜感激 更新:我在Ubuntu Linu

我做了一个决定。但是,经过最近的一些改变,它在Firefox3.6中看起来不错,但在Google Chrome中却显示出相当糟糕的显示异常。在JavaScript代码更改了表头行的位置后,它似乎没有刷新/重画表头行

特别值得注意的是,当浮动表标题行位于表的中间位置时,您可以快速向上滚动:它会在表的中间留下标题行的副本,并且不会正确地重新绘制表

源代码在一个文件夹中

如果有人能告诉我一个干净的解决方案,让它在Google Chrome中正确刷新显示,我将不胜感激

更新:我在Ubuntu Linux 10.04和Windows XP上都看到了它,Chrome版本为5.0.375.99 beta。这在Linux上似乎更为明显,但在Windows上也是一个问题。我刚刚在Linux上安装了5.0.375.125测试版,现在仍然在运行

我会用电脑追踪

更新2011年1月26日:我在Ubuntu Linux 10.04上用Chrome 9.0.597.67测试版测试了这个问题,问题似乎不再明显。

更新的答案:

我可以通过将重置延迟一帧来解决Windows上的问题。在setTimeout中包装else条件:

                setTimeout(function() {
                    floatingHeaderRow.css("visibility", "hidden");
                    floatingHeaderRow.css("top", "0");
                }, 1);
旧答案:


我不认为这个问题会在Chrome for Windows上表现出来(我刚刚尝试过)。然而,切换到position:fixed而不是position:absolute可能会更好地解决您的问题。只需使用间隔来检查是否需要滚动和设置位置:固定,否则设置后退。

解决方案更简单,Chrome的问题在于您的表头有2个

<thead>
<tr class="tableFloatingHeader" style="position: absolute; left: 0px; visibility: hidden; top: 0px; ">
    <th>table1 col header</th>
    <th>table1 col header</th>
</tr><tr class="tableFloatingHeaderOriginal">
    <th>table1 col header</th>
    <th>table1 col header</th>
</tr>
</thead>

表1 col标题
表1 col标题
表1 col标题
表1 col标题

删除一个,您的问题将得到解决

谢谢您的建议。我在想也许
position:fixed
会让水平定位更具挑战性——例如,处理左边距、水平滚动。但也许这不会太难。我可以在Chrome for Windows(Windows7/IE8)上重现这个问题。但是,我只能在第一张表上重新创建问题,而不能在第二张(较薄的)表上重新创建问题。我还注意到,有时,在第一个表格上,根据我的滚动速度,我可以让标题只显示一行的一部分,这样右边的列标题只显示“table 1 col”,甚至只有该行的一半是可见的。我在Windows XP上检查过,我也看到了它。然而,它在Linux中更引人注目。正如艾莉森所说,在第一张表上也更引人注目。我的修复方法很简单,在Windows上肯定能解决这个问题。你能回答说它是否对你有效吗?是的,这似乎解决了这个问题。在Linux上,向下滚动第一个表时也会出现一些刷新问题,因此我将整个函数包装在
setTimeout()
中,这也解决了这个问题。这似乎使滚动更加缓慢,但不会太慢。这绝对是一个值得进一步考虑的想法。如果我删除它,这将破坏my to my的观点。我仍然不明白为什么一个表需要两个标题行,您可以实现jquery scroll事件处理程序。当scroll position>header.position时,将滚动位置添加到标题行位置