微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

为什么jQuery Datatable 中有sDom、oLanguage 这样的前缀?

如何解决为什么jQuery Datatable 中有sDom、oLanguage 这样的前缀?

我正在使用一个我已经启动的数据表,

var datatable = $('#datatble').DataTable({
    ... (Some stuff around there)
    oLanguage: {
        sSearch: '_INPUT_'
        lengthMenu: '_MENU_',},language: {},sDom: '',});

我的问题是为什么像 sDom,oLanguage,sSearch 这样的属性有前缀?

如果没有 language: {},,lengthMenu 属性不起作用。没有前缀,相应的属性不起作用。

请解释一下,为什么会这样?

那些 prefix 是什么意思?

解决方法

这些指定了它们的变量类型。 s 是字符串,b 是布尔值,o 是一个对象等等。它被称为 Hungarian Notation 并在它们的 FAQ 页面上指定

,

DataTables 有两个命名标准:

  • 较旧的匈牙利符号名称(适用于 1.10 之前的版本)
  • 新的驼峰命名法(从 1.10 开始)

如果您使用的是最新版本的 DataTables(从 1.10 版开始),您可以使用 new naming standard or the old one

官方文档中有一页documents the mapping介于两种命名标准之间。

新的 1.10+ API 比旧的(1.10 之前的)API 大,因此在某些情况下,新的驼峰命名法没有旧的匈牙利风格等效项。

查看您问题中的示例之一:

oLanguage: {
  sSearch: '_INPUT_',lengthMenu: '_MENU_',}

没有像 oLanguage.lengthMenu 这样的属性 - 它必须是:

  • sLengthMenu 如果您使用的是 oLanguage(旧样式)
  • lengthMenu 如果您使用的是 language(新样式)

我建议尽可能使用新名称 - 特别是在新项目中。匈牙利表示法选项已弃用,将在未来版本中移除。但是您会看到许多旧示例和教程使用的旧名称。

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。