jQuery dataTables 对包装器宽度的更改仅在加载 chrome 的检查器后生效



我正试图使用dataTables调整表的大小,但我花了几个小时来尝试,但这是不可能的。如果我使用普通CSS设置宽度,它可以很好地工作,但我的意图是动态设置宽度,并使其与页面宽度相适应:

我有以下代码:

var winH = screen.availHeight;     
winH = winH - (winH/2) - 50;
winH = winH + "px";
winW = screen.availWidth;
winW = winW - 100;
winW = winW + "px";
var oTable = $('#tutorial-table').dataTable({
    "bFilter": false,
    "bSort": false,
    "bPaginate": false,
    "bScrollCollapse": true,   
    "bInfo": true,
    "sScrollY": winH,
    "bAutoWidth": false,
    "sScrollX": "100%"
});
new FixedColumns( oTable, {
    "iLeftColumns": 1,
    "iLeftWidth": 130,
});        
$('#tutorial-table_wrapper').css('width', winW);
oTable.fnDraw();

上面的代码缩小了表格,只显示了1列,但如果我添加一些CSS:

#tutorial-table_wrapper{
    width: 1200px;
}

它工作正常,并将表的大小调整为1200px(只有当我打开检查器时,通过JS设置它才有效,我怀疑这是由于chrome重新加载了所有元素)。

有没有办法强迫这种行为或以某种方式设置宽度?

感谢

我最终通过完全删除dataTables并使用jquery固定表来修复它:

http://www.novasoftware.com/Download/jQuery_FixedTable/JQuery_FixedTable.aspx

设置起来更容易,非常轻,在加载动态表或配置宽度等参数时也更灵敏。

谨致问候。

最新更新