问题是非常基本的。
如果您使用 IE9访问http://flexigrid.info/ 并浏览“示例 2 ”部分,并且列在可见位置上调整大小,它将激活水平滚动条。当您悬停在行上时,您会体验到 Flexigrid 尺寸的增长。我没有体验过IE7和IE8,只有IE9。这个问题有高度:自动配置。我还没有找到解决方案。请帮我!
问题是非常基本的。
如果您使用 IE9访问http://flexigrid.info/ 并浏览“示例 2 ”部分,并且列在可见位置上调整大小,它将激活水平滚动条。当您悬停在行上时,您会体验到 Flexigrid 尺寸的增长。我没有体验过IE7和IE8,只有IE9。这个问题有高度:自动配置。我还没有找到解决方案。请帮我!
实际上,@Szenti 发布的解决方案仅适用于页面上的 1 个 flexigrid,如果有多个,它只会采用它找到的第一个 bDiv 的高度值并将修复应用于所有。
我认为我的修订版将适用于页面上同时存在许多 flexigrid 的情况。
ie9Fix: function() {
var bDivH = $(this.bDiv).height();
var bDivTH = $('table', this.bDiv).height();
if(bDivH != bDivTH && p.height=='auto') {
$(".bDiv").css({height: bDivTH + 18});
}
},
我有同样的问题。感谢@Szenti 的回答,但是,一旦完成,当表格中的结果通过 AJAX 重新生成时,我就会遇到 flexigrid 调整大小问题。这发生在最新的 Chrome、Firefox 和 IE7/8 中。
所以我在混合中添加了一个(有些人会说脏的)浏览器嗅探。
全局变量:
var ie9 = false;
if ($.browser.msie && parseInt($.browser.version, 10) == 9) {
ie9 = true;
}
然后在调用@Szanti 的方法的地方,我将其包装在:
if (ie9) {
this.ie9Fix();
}
现在适用于所有浏览器。
解决方案:
您必须编辑 flexigrid js。用这个附加 g 对象:
ie9Fix: function() {
if($(".bDiv").height() != $(".bDiv table").height() && p.height=='auto') {
$(".bDiv").css({height: $(".bDiv table").height() + 18});
}
},
您必须在 2 个地方调用 ie9Fix 函数
在 g.addRowProp() 中,您必须编写一个新事件:
.mouseleave(function(){ g.ie9Fix(); })
而已!