2011-04-28 67 views
0

問題是非常基本的。Flexigrid + IE9高度:自動

如果你去http://flexigrid.info/與IE9,探索「例如2」部分,列調整在顯眼的地方,這將激活水平滾動條。並且您將鼠標懸停在行上,您會體驗到Flexigrid尺寸的增長。我沒有體驗IE7和IE8,只有IE9。這個問題具有高度:自動配置。我還沒有找到解決方案。請幫幫我!

回答

0

解決方案:

您必須編輯flexigrid js。與此追加摹對象:

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

你必須調用ie9Fix功能在兩個地方

  • 在g.dragEnd()函數最後一行(this.ie9Fix();)
  • 在g.addRowProp(),你必須寫一個新的事件:

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

就是這樣!

1

我有這個相同的問題。感謝@Szenti的答案,但是,一旦這個地方,我就有flexigrid調整大小的問題,當表中的結果通過AJAX重新生成。這發生在最新的Chrome,Firefox和IE7/8中。

所以我添加了一個(有人會說髒)瀏覽器嗅探混合。

全局變量:

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

又在哪裏@ Szanti的方法被稱爲我只是把它包裝:

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

現在工作在所有瀏覽器治療。

2

實際上,@Szenti發佈的解決方案僅適用於頁面上的1個flexigrid,如果有多個,它只會將其創建的第一個bDiv的高度值並應用於所有修補程序。

我認爲我的修改版本適用於頁面上有許多flexigrids的情況。

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

我已經寫了一個補丁,根據此評論在flexigrid問題頁面:http://code.google.com/p/flexigrid/issues/detail?id=112 – 2012-09-12 10:07:44