gpt4 book ai didi

javascript - 数据表:更改表的高度不起作用

转载 作者:太空狗 更新时间:2023-10-29 13:07:05 24 4
gpt4 key购买 nike

我正在使用 bPaginate = false 的 Jquery Datatables 表,sScrollY 是一些固定高度。最终我希望表格在 window.resize 事件中调整大小。

为了让它工作,我构建了一个较小的测试用例:在下面的代码片段中,我希望在单击按钮时调整表格的大小

HTML:

<!DOCTYPE html>
<html>
<head>
<link class="jsbin" href="http://ajax.googleapis.com/ajax/libs/jqueryui/1/themes/base/jquery-ui.css" rel="stylesheet" type="text/css" />
<script class="jsbin" src="http://ajax.googleapis.com/ajax/libs/jquery/1/jquery.min.js"></script>
<script class="jsbin" src="http://ajax.googleapis.com/ajax/libs/jqueryui/1.8.13/jquery-ui.min.js"></script>
<script type="text/javascript" language="javascript" src="http://www.datatables.net/release-datatables/media/js/jquery.dataTables.js"></script>
<meta charset=utf-8 />
<title>JS Bin</title>
</head>
<body>
<input id="button" type="button" value="Click me!" />
<table cellpadding="0" cellspacing="0" border="0" class="display" id="example">
<thead>
<tr>
<th>Rendering engine</th>

<th>Browser</th>
<th>Platform(s)</th>
<th>Engine version</th>
<th>CSS grade</th>
</tr>
</thead>
<tbody>
<tr class="odd gradeX">
<td>Trident</td>
<td>Internet
Explorer 4.0</td>
<td>Win 95+</td>
<td class="center"> 4</td>
<td class="center">X</td>

</tr>
<tr class="even gradeC">
<td>Trident</td>
<td>Internet
Explorer 5.0</td>
<td>Win 95+</td>
<td class="center">5</td>
<td class="center">C</td>

</tr>
<tr class="odd gradeA">
<td>Trident</td>
<td>Internet
Explorer 5.5</td>
<td>Win 95+</td>
<td class="center">5.5</td>
<td class="center">A</td>

</tr>
</tbody>
<tfoot>
<tr>
<th>Rendering engine</th>
<th>Browser</th>
<th>Platform(s)</th>

<th>Engine version</th>
<th>CSS grade</th>
</tr>
</tfoot>
</table>
</body>
</html>

Javascript:

$('#button').click(function() {
console.log('Handler for .click() called.');
table = $('#example').dataTable();
settings = table.fnSettings();
console.log('old:' + settings.oScroll.sY);
settings.oScroll.sY = '150px';
console.log('new:' + settings.oScroll.sY);
table.fnDraw(false);
});
$('#example').dataTable({
"sScrollY": "350px",
"bPaginate": false,
"bJQueryUI": true
});

控制台输出符合预期:

Handler for .click() called.
old:350px
new:150px

但是表格没有更新!知道我做错了什么吗?

可以在这里找到一个实例:http://jsbin.com/anegiw/12/edit

最佳答案

好吧,似乎工作得很好的是利用 datatbables 框架添加的元素:

$(window).resize(function() {
console.log($(window).height());
$('.dataTables_scrollBody').css('height', ($(window).height() - 200));
});

$('#example').dataTable({
"sScrollY": ($(window).height() - 200),
"bPaginate": false,
"bJQueryUI": true
});

此示例让表格随窗口平滑地调整大小。

实例:http://jsbin.com/anegiw/18/edit

关于javascript - 数据表:更改表的高度不起作用,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7678345/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com