jQuery - 调整浏览器窗口大小后自动更改值

时间:2014-08-19 13:36:11

标签: javascript jquery datatables

我们有以下代码(另外,存在插件DataTables)

$('#myTable').dataTable( {
      "scrollY":  height, <-- auto height here
      "scrollCollapse": true,
} );

我不太了解jquery,我对自动更改值有疑问。

我有一个div元素,其中高度是百分比(例如:50%)和 我想以像素为单位获得此高度。当然,随着浏览器窗口的改变,高度会发生变化。

不幸的是,我不知道怎么办,有人在这里可以帮忙吗? (最好是一个例子)

更新1:

我试过那样的

    var ch = $('#dataTableWrapper').height() - 110; // I subtracted the value of the height of my static elements in a div 

    $('#dataTableID').dataTable( {
        "scrollY": ch,
        "scrollCollapse": true,
    } );

    $(window).resize(function(){
        ch = $('#dataTableWrapper').height() - 110; // same as above
        $('.dataTables_scrollBody').css('height', ch);
    });

显然它可行,但如果有人有更优雅的解决方案,我会问有关抛出代码的问题。

2 个答案:

答案 0 :(得分:0)

你可以这样做:

$( window ).resize(function() {
   var scroll = $("#yourDiv").height();
   });

答案 1 :(得分:0)

这可能是一个愚蠢的建议,但你只是在寻找一个简单的重构吗?

function getTableHeight() {
    return $('#dataTableWrapper').height() - 110;
}

$('#dataTableID').dataTable( {
    "scrollY": getTableHeight(),
    "scrollCollapse": true,
} );

$(window).resize(function(){
    $('.dataTables_scrollBody').css('height', getTableHeight());
});