Rya*_*anf 5 html javascript jquery json datatables
我有一个项目,用户需要能够选择随附的脚本是否激活 jQuery DataTables 的响应式扩展。
我想在 HTML 中添加一个下拉菜单,让用户选择是否将选项responsive设置为初始化选项true或false在dataTable()初始化选项中。
我尝试添加一个单独的函数来选择值,并使用全局变量将其传递给函数dataTable(),但无法使其工作。
JavaScript:
$(document).ready(function(){
$("#example").dataTable({
"responsive": false,
"processing": false,
"serverSide": true,
"ajax": "scripts/university.php",
"columns": [
// ID
null, ........
Run Code Online (Sandbox Code Playgroud)
*HTML**
<select id="selected2" onchange="myFunction()">
<option value="true">true</option>
<option value="false">false</option>
</select>
Run Code Online (Sandbox Code Playgroud)
我尝试添加一个document.getElementById子句作为 dataTable 函数的第一行,但无法使其工作。
我可以向现有功能添加什么以使responsive选项用户可以从 HTML 页面上的列表中进行选择?
解决方案
您需要销毁表才能重新初始化它并启用/禁用响应式扩展。
var dtOptions = {
responsive: true
};
var table = $('#example').DataTable(dtOptions);
$('#ctrl-select').on('change', function(){
dtOptions.responsive = ($(this).val() === "1") ? true : false;
$('#example').DataTable().destroy();
$('#example').removeClass('dtr-inline collapsed');
table = $('#example').DataTable(dtOptions);
});
Run Code Online (Sandbox Code Playgroud)
笔记
当表被销毁时,响应式扩展会留下一些类(dtr-inline, collapsed),因此我在再次初始化表之前手动删除它们。
另外,我建议将所有选项放在一个单独的对象中dtOptions,以便重新初始化更容易,这样您只需要切换一个选项即可responsive。
演示版
有关代码和演示,请参阅此 jsFiddle 。
| 归档时间: |
|
| 查看次数: |
7055 次 |
| 最近记录: |