1

我正在使用数据表,建议将以下内容添加到我的代码中:

$.fn.dataTableExt.oStdClasses.sWrapper = 'no-margin last-child';
$.fn.dataTableExt.oStdClasses.sInfo = 'message no-margin';
$.fn.dataTableExt.oStdClasses.sLength = 'float-left';
$.fn.dataTableExt.oStdClasses.sFilter = 'float-right';
$.fn.dataTableExt.oStdClasses.sPaging = 'sub-hover paging_';
$.fn.dataTableExt.oStdClasses.sPagePrevEnabled = 'control-prev';
$.fn.dataTableExt.oStdClasses.sPagePrevDisabled = 'control-prev disabled';
$.fn.dataTableExt.oStdClasses.sPageNextEnabled = 'control-next';
$.fn.dataTableExt.oStdClasses.sPageNextDisabled = 'control-next disabled';
$.fn.dataTableExt.oStdClasses.sPageFirst = 'control-first';
$.fn.dataTableExt.oStdClasses.sPagePrevious = 'control-prev';
$.fn.dataTableExt.oStdClasses.sPageNext = 'control-next';
$.fn.dataTableExt.oStdClasses.sPageLast = 'control-last';

我不明白这种语法。有人可以解释它在做什么。还有一种方法可以组合所有这些行。前 30 列都是一样的。

4

3 回答 3

7

这段代码正在添加属性$.fn.dataTableExt(我相信你可以看到)。这些属性可能用作扩展的配置字符串,作为DRY模式的一部分,因此当需要更改常用值时,不必在十几个地方进行更改。

使用$.extend可以改进此代码:

$.extend($.fn.dataTableExt.oStdClasses, {
    sWrapper: 'no-margin last-child',
    sInfo: 'message no-margin',
    sLength: 'float-left',
    ...
});
于 2012-07-27T16:14:44.043 回答
1

不完全是,但您可以将实例保存在变量中,然后用更简单的基础引用它们:

var someObject = $.fn.dataTableExt.oStdClasses;
someObject.sWrapper = 'no-margin last-child';
someObject.sInfo = 'message no-margin';
someObject.sLength = 'float-left';
someObject.sFilter = 'float-right';
someObject.sPaging = 'sub-hover paging_';
someObject.sPagePrevEnabled = 'control-prev';
someObject.sPagePrevDisabled = 'control-prev disabled';
someObject.sPageNextEnabled = 'control-next';
someObject.sPageNextDisabled = 'control-next disabled';
someObject.sPageFirst = 'control-first';
someObject.sPagePrevious = 'control-prev';
someObject.sPageNext = 'control-next';
someObject.sPageLast = 'control-last';
于 2012-07-27T16:14:32.523 回答
1

至少你可以这样做:

$.extend($.fn.dataTableExt.oStdClasses, {

  sWrapper: 'val',
  sInfo: 'val',
  ...

});
于 2012-07-27T16:15:48.567 回答