按钮的 jQuery Datatable DOM 定位

2023-11-24

我刚刚将 jQuery Datatable 版本升级到 1.10。然后我尝试删除其已退役的插件,例如带有“Button”扩展名的“Colvis”和“Tabletools”。这里一切正常。

但对我来说问题是,我无法将“Colvis”按钮与“Tabletool”按钮分开。

"sDom": "B<'row'><'row'<'col-md-6'l><'col-md-6'f>r>t<'row'<'col-md-4'i>><'row'p>B",
    "buttons": [
        'copyHtml5',
        'excelHtml5',
        'csvHtml5',     
        {
            extend: 'colvis',
            postfixButtons: [ 'colvisRestore' ],
            columns: '0,1,2,3,4,5,6'
        }
    ],
    language: {
        buttons: {
            colvis: 'Change columns'
        }
    }

在“sDom”中,字母“B”表示按钮。所以我将所有四个按钮(复制、Excel、CSV 和 Colvis)放在一行中。但我需要将“Colvis”按钮与(复制、Excel 和 CSV)分开。

那么有没有办法在搜索框附近添加一个按钮,在分页附近添加另一个按钮呢?

OR

“sDom”或“Button”中是否有可用的配置?

谢谢你!


您可以使用以下命令将新元素添加到 dataTables dom 控件中<'.class'> or <'#id'>。例如,插入一个新的<div id="colvis">分页左侧的元素,<'#colvis'> before p :

"sDom": "B<'row'><'row'<'col-md-6'l><'col-md-6'f>r>t<'row'<'col-md-4'i>><'row'<'#colvis'>p>"

科尔维斯按钮有类.buttons-colvis,因此您将它们永久移动到注入的#colvis元素由:

$('.buttons-colvis').detach().appendTo('#colvis')

这是将 Colvis 按钮移动到另一个位置的快速方法。


关于@GreeKatrina的建议,是的 - 但正确的放置方法是:

var colvis = new $.fn.dataTable.Buttons( table, {
    buttons: [
        {
            extend: 'colvis',
            ... 
        }
   ]
})
colvis.container().appendTo('#colvis')

if你有一个#colvis当然元素。


我的建议:除了上面的硬编码解决方案之外,您专门针对 colvis 按钮,您还可以猴子修补 dataTables 按钮,这样each扩展按钮可以有一个container选项。初始化后,按钮移动到指定位置container :

var org_buildButton = $.fn.DataTable.Buttons.prototype._buildButton;
$.fn.DataTable.Buttons.prototype._buildButton = function(config, collectionButton) {
   var button = org_buildButton.apply(this, arguments);
   $(document).one('init.dt', function(e, settings, json) {
       if (config.container && $(config.container).length) {
          $(button.inserter[0]).detach().appendTo(config.container)
       }
   })    
   return button;
}

use the container选项 :

{
   extend: 'colvis',
   postfixButtons: [ 'colvisRestore' ],
   container : '#colvis', //<---
   columns: '0,1,2,3,4,5'
}

演示->http://jsfiddle.net/v4bLv83h/

正如示例所示,您现在可以为每个按钮指定一个替代容器。注意container可以是任何元素,它不必是由注入的元素dom。另请注意(正如您可能在小提琴中注意到的那样),如果您想让注入的元素与本机控制元素(例如分页块)一起正确流动,则需要进行一些样式设置。

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

按钮的 jQuery Datatable DOM 定位 的相关文章

随机推荐

  • 用 C++ 将所有程序输出写入 txt 文件

    我需要将所有程序输出写入文本文件 我相信事情是这样完成的 sOutFile lt lt stdout 其中 sOutFile 是创建文件的 ofstream 对象 如下所示 sOutFile CreateAFile txt CreateAF
  • 在C中使用memset()有什么好处

    我很好奇在类似于下面的情况下使用 memset 在效率方面是否有任何优势 鉴于以下缓冲区声明 struct More Buffer Info unsigned char a 10 unsigned char b 10 unsigned ch
  • 如何从 SSIS 发出 HTTP 请求?

    我有兴趣了解如何从 SSIS 进行 HTTP 调用 例如 我希望能够从以下位置下载文件http www domain com resource zip并记录下载的日期时间和驱动器上文件的目的地 我还想捕获文件大小等属性并捕获下载完成时的日期
  • 如何在 Matlab 中迭代 C# IEnumerable?

    我有一些 C 语言的 Linq to SQL 代码 我试图使用 Matlab 2010b 访问它们 如果我的 Linq 代码返回单个项目实例 我可以在 Matlab 中毫无问题地访问所有属性 dal Data PeopleRepositor
  • GetPackageInfo 结果导致 DeadObjectException

    我有以下代码片段 public static String getAppVersion Context context String versionName null try versionName context getPackageMa
  • 如何检查 vector 是否实际上是位向量而不是字节向量?

    我需要存储动态的位数组 关于向量 的 C 参考页有以下信息 存储不一定是数组bool值 但库实现可以优化存储 以便每个值都存储在单个位中 我如何确保我的程序使用vector
  • 带有视频源的 HTML5 Canvas drawImage 无法在 Android 上运行

    我正在尝试使用画布drawImage方法与视频源 但它不适用于Android 4 4 2 用Chrome浏览器测试 这是我的代码 function var canvas document getElementById canvas var
  • Angular2 - 成功登录后重定向到调用网址

    我已经使用 Angular 2 1 0 启动并运行了我的应用程序 路由通过路由器守卫 canActivate 进行保护 当将浏览器指向 localhost 8080 customers 等受保护区域时 我会像预期一样重定向到我的登录页面 但
  • Java 9,ClassLoader.getSystemClassLoader 的兼容性问题

    以下代码将 jar 文件添加到构建路径 它在 Java 8 中工作正常 但是 它在 Java 9 中抛出异常 该异常与 URLClassLoader 的强制转换有关 有什么想法可以解决这个问题吗 最佳解决方案是将其编辑为适用于 Java 8
  • 将 location.pathname 和 location.search 设置在一起?

    我想做类似的事情 location pathname abc location search name test 它最终被重定向到 abc 我希望重定向发生 abc name test 只需设置location or location hr
  • 如何将图像大小缩小到1MB

    我希望我的应用程序上传图像没有大小限制 但在代码中 如果图像大小超过 我想将图像大小调整为 1MB 我尝试了很多方法 但找不到满足上面提到的要求的任何代码 这一次 我尝试过这个 public void scaleDown int width
  • jQuery 在选定的收音机上添加/删除 css 类

    我已经在这里阅读了一些解决方案 但我的问题非常不同 这些解决方案不起作用 基本上 如果单选按钮被选中 则向父 div 添加一个 css 类 如果未选中无线电 请删除 css 类 听起来很简单 我有多个单选按钮组 因此换句话说 一次会选择多个
  • PIC16 C 编译器

    我正在为 PIC 16 系列寻找一个在 Windows 上运行的优秀 C 编译器 几个同事使用bknudc但有些人似乎不喜欢它 显然你无法有效地使用链接器 事实证明最好的方法是将所有代码设置在包含文件中 SDCC看起来不错 但看起来它仍处于
  • dart,单元测试私有方法

    我有一个相当大的库 但只公开了一个非常小的 API 以方便新用户使用和学习 我想以这种方式保留我的库 但我也想确保我有尽可能多的单元测试覆盖率 我希望能够直接对我的所有课程进行单元测试 但据我所知我可以仅对库的公共 API 进行单元测试 当
  • 使用 Qunit 断言函数抛出异常

    我是 Qunit 和单元测试的新手 我试图弄清楚测试以下功能的内容和方法 目前它没有做太多事情 但我想断言 如果我传递错误的值 则会抛出错误 function attrToggle panel attr use strict if pane
  • 字符串的 OCaml 函数参数模式匹配

    我尝试传递一个字符串来获取反转的字符串 为什么我不能这样做 let rec reverse x match x with gt e s gt reverse s e 编译器说这是一个语法错误 我不能用吗 解构参数 原因是字符串不像列表那样表
  • Visual C++ 中的 Pthread

    我正在 Windows 中尝试多线程 想知道是否应该 use Win32 API use Windows 的 POSIX 线程 如果我尝试在不同平台上开发此类应用程序 学习 Pthreads 将很有用 但如果不学习 Win32 API 我会
  • 在 Android 嵌套 PreferenceScreen 上显示向上/后退按钮?

    我有一个两级 PreferenceScreen
  • 带有等号和空格的 Python 子进程参数

    我正在尝试运行命令subprocess check output不使用shell True关键字参数 我的命令是这样的 command parameter something with spaces 有了这个 subprocess chec
  • 按钮的 jQuery Datatable DOM 定位

    我刚刚将 jQuery Datatable 版本升级到 1 10 然后我尝试删除其已退役的插件 例如带有 Button 扩展名的 Colvis 和 Tabletools 这里一切正常 但对我来说问题是 我无法将 Colvis 按钮与 Tab