tablesorter不显示向上和向下箭头

时间:2013-04-02 05:33:53

标签: jquery html css3 tablesorter

我正在尝试使用JQuery tablesoter插件但是当它显示箭头时,当我按降序或升序排序时,它不会显示向下或向上箭头。它始终显示向上和向下箭头(未分类的箭头)。似乎table.tablesorter .header {...}会覆盖table.tablesorter .headerSortUp {...}和table.tablesorter .headerSortDown {...}样式。以下是我的代码:

CSS

table.tablesorter .headerSortUp {
    background-image: url('../images/icons/asc.gif');
    background-repeat: no-repeat;
    background-position: center right;
}
table.tablesorter .headerSortDown {
    background-image: url('../images/icons/desc.gif');
    background-repeat: no-repeat;
    background-position: center right;
}
table.tablesorter .header {
    cursor: pointer;
    background-image: url('../images/icons/bg.gif');
    background-repeat: no-repeat;
    background-position: center right;
}

我的表位于速度模板中,但我认为这不会影响此问题。

<table id="harvestTable" class="tablesorter" border="1">
      <thead>
      <tr>
        <th>Source</th>
        <th>Time</th>
      </tr>
      </thead>
      <tbody>
      #foreach($item in $self.harvestlist)
        #set($harvestId = $item.getFirst('harvestId'))
...

我已在相应的文件夹中包含相关图标。我正在使用chrome并在firefox上对此进行了测试,但两者都不兼容。当我检查chrome中的元素时,我可以看到.header的图像覆盖了.headerSortUp和.headerSortDown图像。如果我取消选择.header的图像,则会正确显示.headerSortUp图像。

我错过了什么吗?我非常感谢有价值的回应。

谢谢

2 个答案:

答案 0 :(得分:3)

您遇到的问题归因于css specificity(试用this calculator):

默认的蓝色主题使用:

table.tablesorter thead tr .headerSortUp {} // (0,0,2,3)

所以,为了覆盖它,你需要更高的css特异性。一种方法是在排序类中添加th

table.tablesorter thead tr th.headerSortUp {} // (0,0,2,4)

答案 1 :(得分:1)

这是由于css偏好规则。始终应用上次匹配的规则。为了克服这种情况,你可以随时使用!important修饰符,就像你的情况一样

table.tablesorter .headerSortDown {
 background-image: url('../images/icons/desc.gif') !important;

你只需将.header css放在.headerSortDown和.headerSortUp之前,它就会开始工作。