如何动态启用/禁用响应式扩展
How to dynamically enable/disable Responsive extension
我有一个项目,用户需要能够选择是否随附的脚本激活jQuery数据表的响应扩展。
我想在HTML中添加一个下拉菜单,让用户在dataTable()
初始化选项中选择选项responsive
是否设置为true
或false
。
我试图添加一个单独的函数来选择值,并使用全局变量将其获取到dataTable()
函数,但无法使其正常工作。
$(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函数的第一行,但无法使其工作。
我可以添加什么到现有的功能,使responsive
选项用户可从HTML页面上的列表中选择?
SOLUTION
你需要销毁表来重新初始化它,并启用/禁用响应扩展。
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
。
假设它是这个DataTable插件,那么您可以更改myFunction中的响应设置。首先,
var table = $('#example').DataTable(/* your current settings */);
然后,在myFunction中
new $.fn.dataTable.Responsive( table, {
details: true
} );
您是否尝试过使用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, ........
JSFiddle
我们去掉那些突兀的javascript或者直接用( onchange="myFunction()")
$(document).ready(function(){
var selectedValue;
$('#selected2').change( function() {
selectedValue = $(this).val();
alert(selectedValue);
});
});
相关文章:
- 可以't添加Chrome扩展的响应标头
- Chrome扩展消息传递:未发送响应
- 来自 chrome 扩展程序中内容脚本的未定义响应
- Firefox 扩展损坏了 gzip 响应
- 未发送 Chrome 扩展程序发送响应回调值
- 如何创建在引导程序 3 中也可以纵向扩展的响应式映像
- Http 响应标头在火狐扩展中总是不会被修改
- Chrome扩展-如何获取HTTP响应正文
- 在Express和Node.js中,是否可以扩展或覆盖响应对象的方法
- 在Firefox Web扩展中使用chrome.runtime.sendMessage不会产生响应
- 使用Chrome扩展修改HTTP请求的响应主体
- jquery-datatables-rails.响应式扩展和移动视图
- 在响应式设计中禁用Javascript扩展器
- 数据表列可见性与响应扩展
- Chrome扩展运行时.Sendmessage等待响应
- Firefox扩展:取消请求并发出假响应
- 响应扩展-隐藏所有列,但第一个
- XMLHttpRequest POST响应通过JSON总是空(Chrome扩展)
- Chrome扩展:如何响应从"弹出"在内容脚本中
- 响应自定义扩展预览