灵活网格IE9高度:自动

发布于 2024-11-03 17:35:17 字数 255 浏览 1 评论 0原文

这个问题是非常基本的。

如果您使用 IE9 访问 http://flexigrid.info/,并探索 ' 示例 2' 部分,并且列在可见位置上调整大小,它将激活水平滚动条。当您将鼠标悬停在行上时,您会体验到 Flexigrid 大小的增长。我没有体验过IE7和IE8,只体验过IE9。这个问题有高度:自动配置。我还没有找到解决方案。请帮我!

The problem is very elemental.

If you go to http://flexigrid.info/ with IE9, and explore the 'example 2' section, and the columns resize over the visible place, that it will activate the horizontal scrollbar. And you hover the rows, you experience growing up the Flexigrid size. I don't experience IE7 and IE8, only IE9. This problem has by height: auto configurate. I didn't find solution yet. Please help me!

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(3

三寸金莲 2024-11-10 17:35:17

实际上,@Szenti 发布的解决方案仅适用于页面上的 1 个 Flexigrid,如果有多个,它只会采用它找到的第一个 bDiv 的高度值并将修复应用于所有。

我认为我的修订版本将适用于页面上同时有许多柔性网格的情况。

ie9Fix: function() {
            var bDivH = $(this.bDiv).height();
            var bDivTH = $('table', this.bDiv).height();
            if(bDivH != bDivTH && p.height=='auto') {
               $(".bDiv").css({height: bDivTH + 18});
            }
        },

Actually, the solution that @Szenti posted will only work for 1 flexigrid on the page, if there are multiple, it will only takes the height value of the 1st bDiv it founds and apply the fix to all.

My revised version I think will apply to situations where there are many flexigrids on the page at one time.

ie9Fix: function() {
            var bDivH = $(this.bDiv).height();
            var bDivTH = $('table', this.bDiv).height();
            if(bDivH != bDivTH && p.height=='auto') {
               $(".bDiv").css({height: bDivTH + 18});
            }
        },
我是有多爱你 2024-11-10 17:35:17

我也有同样的问题。感谢@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();
}

现在可以在所有浏览器中使用。

I had this same issue. Thanks @Szenti for the Answer, however, once this was in place I then had flexigrid resize issue when the results in the table where regenerated via AJAX. This occured in latest Chrome, Firefox and IE7/8.

So I added a (some would say dirty) browser sniff into the mix.

Global var:

var ie9 = false;
if ($.browser.msie && parseInt($.browser.version, 10) == 9) {
    ie9 = true;
}

Then where @Szanti's method is called I just wrap it in:

if (ie9) {
 this.ie9Fix();
}

Now works a treat in all browsers.

等待圉鍢 2024-11-10 17:35:17

解决方案:

您必须编辑flexigrid js。附加 g 对象:

ie9Fix: function() {
if($(".bDiv").height() != $(".bDiv table").height() && p.height=='auto') {
   $(".bDiv").css({height: $(".bDiv table").height() + 18});
}
},

您必须在 2 个地方调用 ie9Fix 函数

  • 在 g.dragEnd() 函数最后一行 (this.ie9Fix();)
  • 在 g.addRowProp() 中,您必须编写一个新的事件:

    .mouseleave(函数(){
    g.ie9Fix();
    })

就是这样!

The solution:

You have to edit the flexigrid js. Append the g object with this:

ie9Fix: function() {
if($(".bDiv").height() != $(".bDiv table").height() && p.height=='auto') {
   $(".bDiv").css({height: $(".bDiv table").height() + 18});
}
},

You have to call ie9Fix function in 2 places

  • In the g.dragEnd() function last row (this.ie9Fix();)
  • In the g.addRowProp() you have to write a new event:

    .mouseleave(function(){
    g.ie9Fix();
    })

That's it!

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文