创建一个切换条件

时间:2014-11-02 13:50:57

标签: javascript jquery if-statement addclass

我有两个if语句:

$(document).ready(function() {
setInterval(function() {
    var titleClass = $('.title').hasClass('title-left');
    if (titleClass = true) {
        $('.title').removeClass('title-left');
        $('.title').addClass('title-move');
    }
    var titleMove = $('.title').hasClass('title-move');
    if (titleMove = true) {
        $('.title').removeClass('title-move');
        $('.title').addClass('title-left');
    }
},1000);
});

但是这些类不会添加或删除。我应该使用不同的条件吗? 提前谢谢。

2 个答案:

答案 0 :(得分:3)

if (titleClass = true) {

您不是要比较值,而是分配值。这是你应该做的:

if (titleClass == true) {

修改

同样if (titleMove == true) {}中的代码将始终在(titleClass == true)时执行,因为类title-move是由代码添加的。{1}}。因此,如果它具有类title-left,则会更改为title-move,之后它将更改回title-left,看起来似乎什么也没发生。

我认为这可能是你想要的:

<script>
$(document).ready(function() {
setInterval(function() {
    var titleClass = $('.title').hasClass('title-left');
    if (titleClass == true) {
        $('.title').removeClass('title-left');
        $('.title').addClass('title-move');
    } else {
        var titleMove = $('.title').hasClass('title-move');
        if (titleMove == true) {
            $('.title').removeClass('title-move');
            $('.title').addClass('title-left');
        }
    }
},1000);
});
</script>

答案 1 :(得分:2)

正如已经指出的那样,您应与==运算符进行比较,而不是=分配。

作为进一步改进,您可以使用toggleClass方法来减少代码量:

setInterval(function () {
    $('.title').toggleClass('title-left title-move');
}, 1000);