Как назначить высоту элементу таблицы данных с помощью jquery при изменении размера окна - PullRequest
4 голосов
/ 03 октября 2011

Я использую таблицу данных jquery для отображения данных. При загрузке кузова его устанавливает высота, используя следующий код

<table id="RequestsTable" cellpadding="0" cellspacing="0" border="0" class="display" style="width:100%;">

В скрипте я записал следующий код. ScrollY рассчитывает высоту на основе высоты окна и назначает таблицу данных при загрузке формы.

<script type="text/javascript">
var scrollY = $(window).height()*58/100;

var oTable = $('#RequestsTable').dataTable({
    "sScrollY": scrollY,
    "bPaginate": true,
    "bScrollCollapse": true,

    } );

Я хочу снова вычислить высоту при изменении размера окна и присвоить таблице данных. Я пробовал следующий код, но у меня не получилось.

var scrollY = $(window).height()*58/100;    
$(window).resize(function () {  
scrollY = $(window).height()*58/100;
});

    var oTable = $('#RequestsTable').dataTable({
        "sScrollY": scrollY,
        "bPaginate": true,
        "bScrollCollapse": true,

        } );

У кого-нибудь есть идеи, которые мы можем реализовать. Заранее спасибо.

Я попробовал это, но не повезло

function calcDataTableHeight () {
    return $(window).height()*58/100;
};

$(window).resize(function () {

   var oSettings = oTable.fnSettings();
    oSettings.sScrollY = calcDataTableHeight();
    oTable.fnDraw();
});

var oTable = $('#reqAllRequestsTable').dataTable({
    "sScrollY": calcDataTableHeight()});

Любой другой способ установить высоту можно с помощью css ??

1 Ответ

7 голосов
/ 03 октября 2011

Недостаточно обновить переменную, вам нужно передать новую высоту подключаемому модулю (поскольку он не обновляется автоматически при изменении содержимого переменной):

var $window = $(window);

var calcDataTableHeight = function() {
    return Math.round($window.height() * 0.58);
};

var oTable = $('#RequestsTable').dataTable({
    "sScrollY": calcDataTableHeight(),
    "bPaginate": true,
    "bScrollCollapse": true,
});

$window.resize(function() {
    var oSettings = oTable.fnSettings();
    oSettings.oScroll.sY = calcDataTableHeight(); // <- updated!

    // maybe you need to redraw the table (not sure about this)
    oTable.fnDraw(false);
});
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...