if和else语句检查是否有类

时间:2013-04-24 02:51:14

标签: jquery if-statement

我似乎无法弄清楚这里发生了什么......我有点睡着了,真的想在我睡觉之前完成最后一件事。

我的目标:点击某人,然后检查是否有该类,如果没有,则添加它,然后在1秒动画完成后将其删除。现在我在第3行上得到未经验证的标识符。 (removeClass)

注意:slamedown类是关键帧

$('#accountloginsignup h1').click(function() {
  if ($('#takeonebar').hasClass('slamdown')){
    $('#takeonebar')removeClass('slamedown');
  } else {
    $('#takeonebar').addClass('slamdown');
  }
});

3 个答案:

答案 0 :(得分:14)

.toggleClass()用于此特定目的

来自文档

  

在匹配元素集中的每个元素中添加或删除一个或多个类,具体取决于类的存在或switch参数的值。

$('#accountloginsignup h1').click(function() {
    $('#takeonebar').toggleClass('slamdown');
});

有一个错字

$('#accountloginsignup h1').click(function() {
    if ($('#takeonebar').hasClass('slamdown')){
        $('#takeonebar').removeClass('slamdown');  /missing . before removeClass
    } else {
        $('#takeonebar').addClass('slamdown');
      }
});

答案 1 :(得分:1)

你有一些拼写错误:

$('#accountloginsignup h1').click(function() {
        if ($('#takeonebar').hasClass('slamdown')){
            $('#takeonebar').removeClass('slamdown');
        } else {
            $('#takeonebar').addClass('slamdown');
          }
        });

但你真正想要的是$('#takeonebar').toggleClass('slamdown')

jquery Docs

答案 2 :(得分:0)

  

这在使用hasclass时帮助了我

$(“ div”).click(function(){

long FunctionName()
{
    printf("ENTER FunctionName()\n");
    try {

        std::exception e;
        throw e;
    }
    catch (std::exception)
    {
        printf("Caught std::exception\n");
    }



    try {
        ClFoo oFoo;
        oFoo.Run();
    }
    catch (std::exception)
    {
        printf("Caught 2nd std::exception\n");
    }
    printf("exit\n")
    return 0;
}

class ClFoo
{
public:
    ClFoo() {};
    ~ClFoo() {};
    void Run() {
        std::exception e;
        throw e;
    };
};

});

reference link