在JS中操作时,CSS类“加倍”

时间:2015-06-30 02:30:34

标签: javascript css

我正在尝试将箭头添加到表格中的可排序列中。

第一次它运行良好,然后它加倍了类。

headerUnSort - > headerSortDown - > headerSortUp - > headerUnSort headerSortDown

任何人都知道为什么会这样吗? (出于某些加重的原因,我还必须删除'标题'类。)

$(this).removeClass('header');

if (this.className == 'headerUnSort')
{
    $(this).removeClass();
    this.className = 'headerSortDown';
}
else if (this.className == 'headerSortDown')
{
    $(this).removeClass();
    this.className = 'headerSortUp';
}
else if (this.className == 'headerSortUp')
{
    $(this).removeClass();
    this.className = 'headerUnSort';
}

1 个答案:

答案 0 :(得分:1)

如果没有更多的背景,很难说,但我不认为代码完全按照您的想法行事。试试这个:

var $this = $(this);
$this.removeClass('header');

if ($this.hasClass('headerUnSort')) {
    $this.removeClass('headerUnSort');
    $this.addClass('headerSortDown');

} else if ($this.hasClass('headerSortDown')) {
    $this.removeClass('headerSortDown');
    $this.addClass('headerSortUp');

} else if ($this.hasClass('headerSortUp')) {
    $this.removeClass('headerSortUp');
    $this.addClass('headerUnSort');
}

或者,这应该快得多:

var $this = $(this);
$this.removeClass('header');

if ($this.hasClass('headerUnSort')) {
    this.className = 'headerSortDown';

} else if ($this.hasClass('headerSortDown')) {
    this.className = 'headerSortUp';

} else if ($this.hasClass('headerSortUp')) {
    this.className = 'headerUnSort';
}