我有一个项目,用户需要能够选择附带的脚本是否激活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, ........
* HTML **
<select id="selected2" onchange="myFunction()">
<option value="true">true</option>
<option value="false">false</option>
</select>
我尝试添加document.getElementById
子句作为dataTable函数的第一行,但无法使其工作。
我可以在HTML页面上的列表中添加哪些内容以使responsive
选项用户可以选择?
答案 0 :(得分:1)
<强>解强>
您需要销毁表格以重新初始化它并启用/禁用Responsive扩展名。
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);
});
备注强>
当表被销毁时,响应式扩展会留下一些类(dtr-inline
,collapsed
),因此我会在再次初始化表之前手动删除它们。
另外,我建议在单独的对象dtOptions
中设置所有选项,以便更轻松地重新初始化,这样您只需要切换一个选项responsive
。
<强>样本强>
请参阅this jsFiddle以获取代码和演示。
答案 1 :(得分:0)
假设它是this DataTable插件,那么您可以更改myFunction中的响应设置。首先,
var table = $('#example').DataTable(/* your current settings */);
然后,在myFunction中,
new $.fn.dataTable.Responsive( table, {
details: true
} );
答案 2 :(得分:-1)
您是否尝试使用onChange事件处理程序在下拉选择中发生更改时获取值?我认为使用onChange切换变量值并将其分配给任何dataTable键都可以工作。像这样:
$(document).ready(function(){
var selected;
$('#selected2').onChange( function() {
selected = $(this).val();
}
$("#example").dataTable({
"responsive": false,
"processing": selected,
"serverSide": true,
"ajax": "scripts/university.php",
"columns": [
// ID
null, ........
答案 3 :(得分:-1)
Well get rid of the obtrusive javascript or use it ( onchange="myFunction()")
$(document).ready(function(){
var selectedValue;
$('#selected2').change( function() {
selectedValue = $(this).val();
alert(selectedValue);
});
});