Javascript 检查hasClass以添加类

Javascript 检查hasClass以添加类,javascript,jquery,Javascript,Jquery,我有一个从底部滑出的小面板。它有一个V形向上图标。我正在构建一个jquery代码段,它可以打开和关闭它,但它必须将V形从上到下改变 打开和关闭正在工作,V形在打开时会发生变化,但在关闭时不会重置回V形向上。我的条件语句有点不对劲 这就是我目前所拥有的 <script> $("#openchat").click(function(){ $("#floatingmenu").toggleClass("chatbox-open"); if ($(this).hasClas

我有一个从底部滑出的小面板。它有一个V形向上图标。我正在构建一个jquery代码段,它可以打开和关闭它,但它必须将V形从上到下改变

打开和关闭正在工作,V形在打开时会发生变化,但在关闭时不会重置回V形向上。我的条件语句有点不对劲

这就是我目前所拥有的

<script>
$("#openchat").click(function(){
    $("#floatingmenu").toggleClass("chatbox-open");

    if ($(this).hasClass("chatbox-open")) {
        $(this).removeClass("fa-chevron-up");
        $(this).addClass("fa-chevron-down");
    } else if (!$(this).hasClass("chatbox-open")) {
        $(this).addClass("fa-chevron-down");
        $(this).removeClass("fa-chevron-up");    
    }        
});
</script>

$(“#openchat”)。单击(函数(){
$(“#浮动菜单”).toggleClass(“聊天室打开”);
if($(this).hasClass(“聊天室打开”)){
$(此).removeClass(“fa V形向上”);
$(此).addClass(“fa V形向下”);
}else if(!$(this).hasClass(“聊天室打开”)){
$(此).addClass(“fa V形向下”);
$(此).removeClass(“fa V形向上”);
}        
});
我附上一份

顺便说一句,我的.chatbox开放类就是打开和关闭它的。其他类是图标的简单字体类


请提供任何帮助

实际上您不需要该检查,因为如果
$(this).hasClass(“chatbox open”)
为false,它将直接转到else并执行它

<script>
$("#openchat").click(function(){
    $("#floatingmenu").toggleClass("chatbox-open");

    if ( $(this).hasClass("chatbox-open") ){

        $(this).removeClass("fa-chevron-up");
        $(this).addClass("fa-chevron-down");

    } else {
            $(this).addClass("fa-chevron-down");
            $(this).removeClass("fa-chevron-up");    
    }        
});
</script>

$(“#openchat”)。单击(函数(){
$(“#浮动菜单”).toggleClass(“聊天室打开”);
if($(this).hasClass(“聊天室打开”)){
$(此).removeClass(“fa V形向上”);
$(此).addClass(“fa V形向下”);
}否则{
$(此).addClass(“fa V形向下”);
$(此).removeClass(“fa V形向上”);
}        
});

只需从else中删除
if(!$(this).hasClass(“聊天盒打开”)

您的代码只会进入
else
,因为
#openchat
从未在其他地方切换过它的类

你可以换成这个

$("#openchat").click(function () {
    $("#floatingmenu").toggleClass("chatbox-open");
    $(this).toggleClass("fa-chevron-up fa-chevron-down")
});

实例:

您不需要检查
if(!$(this).hasClass(“聊天盒打开”)
简单的else块就足够了。我建议您简单地使用
toggleClass()
就像
$(this).toggleClass(“fa-chevron-up-fa-chevron-down”)
是否在
#openchat
#floatingmenu
元素上都打开了
聊天室
类?看起来您正在为
#floatingmenu
切换类
聊天室打开
,并检查是否有
#openchat
。无论如何,您必须提供最小列表示例代码来复制问题,例如JSFIDLE和问号中的所有相关HTML标记是的,底部的解决方案不起作用,将fa-chevron向上切换到fa-chevron向下会执行chevron切换,但不会执行打开和关闭操作,因为chatbox open类需要在打开和关闭之间切换。我再加一把小提琴。请给我一分钟时间构建一个quickQuestion。添加了代码笔演示如何解决OP的问题?