3

我正在使用 jQuery 数据表和 oTableTools aButtons。我正在这样做:

oTableTools: {
    aButtons: [
        {
            sExtends: 'text',
            sButtonText: 'Add +',
            fnClick: function ( nButton, oConfig, oFlash ) {/*stuff*/},
            sButtonClass: 'btn-success'
        }
    ]
},

我的问题是a.DTTT_buttondataTable.tableTools.css:38 上的类覆盖了.btn-successbootstrap-combined.min.css:9 上的类,所以我的按钮是灰色而不是绿色。它们都是从外部源加载的,所以我无法编辑它们,并且更改它们的加载顺序不会影响任何东西,大概是因为 dataTable.tableTools.css 中的定义更具体,专门针对锚。

有没有办法强制在加载时sButtonClass优先a.DTTT_button,或者我将不得不在我的本地 css 文件中创建一个新类来复制我想要的样式并改为调用它?这对我来说感觉不太干净,所以如果我不是绝对必须这样做,我宁愿不这样做。

4

2 回答 2

0

除非您想按照您想要的顺序使用 JavaScript 删除并重新将系统表插入到 DOM 中,否则您无法更改 predence。这有点难看,但可以做到。

正确的方法是使用CSS specificity,但由于您无法编辑外部文件,因此操作 DOM 可能是唯一的方法。

这可能会有所帮助:

添加:在正文中使用 javascript 将样式表添加到 Head

删除:如何从当前页面动态删除样式表

于 2013-03-08T17:12:30.567 回答
0

我认为在这种情况下给定参数的最干净的方法实际上是在类a.sButtonClass之后加载的“本地 css 文件”中创建一个选择器。a.DTTT_button特异性将匹配,但级联将获胜a.sButtonClass。我知道您说这“感觉不那么干净”,但是您无法操作两个 css 文件的限制使它成为最干净的解决方案之一。此外,如果您使用的是预处理器(例如基于 boostrap 的LESS ),那么您可以通过将该类用作更具体选择器的 mixin 来使本地增强自动匹配 bootstrap 类。

但是,另一种方法是根本不通过类应用这些样式,并将sButtonClass样式直接style锚元素的属性,因为这将覆盖a.DTTT_button正在执行的任何操作(假设a.DTTT_button没有!important标签)。

于 2013-03-08T17:41:07.840 回答