Closed. This question is off-topic。它当前不接受答案。
                            
                        
                    
                
            
                    
                
                        
                            
                        
                    
                        
                            想改善这个问题吗? Update the question,所以它是on-topic,用于堆栈溢出。
                        
                        2年前关闭。
                    
                
        

我有几个带有mybtn类的按钮。我需要在被单击的类上设置一个类mybtn-active,并将其从当前具有该类的类中删除。

$('.mybtn').on('click', function () {
    $('.mybtn-active').removeClass('mybtn-active');
    $(this).addClass('mybtn-active');
});


当我单击一个按钮时,当前处于活动状态的班级将失去应有的状态。但是被点击的人没有上课。

我使用Chrome调试器传递了脚本,并且可以正常工作。当代码退出脚本时,它只会丢失类。有任何想法吗?

[解决方案] @musefan
按钮是背景中的<a>标记,我没有想到,因为这是我继承的代码,我没有编写HTML。这就是问题所在。请参阅已接受的答案。

最佳答案

假设条件

我将在这里进行一场大规模的赌博,但这是我唯一能想到的事情,它可以解释OP所描述的内容以及该代码可能实际发生的情况。我们将需要OP提供HTML来验证我的假设。

我还假设示例代码中的类选择器是问题的错字,而不是原始代码中的问题(因为OP明确表示删除类工作正常)。

此后,OP在有关此答案和其他答案的评论中证实了我的假设。

问题

我希望您的问题是您使用的是a元素,并且单击实际上是在重新加载页面,或者使用的按钮也具有相同的效果,从而导致所有类都恢复为默认值。



您可以通过使用click事件的参数来解决此问题,如下所示:

$('.mybtn').on('click', function (e) {
    e.preventDefault(); // This prevent the hyperlink from reloading the page.
    $('.mybtn-active').removeClass('mybtn-active');
    $(this).addClass('mybtn-active');
});

关于javascript - jQuery失去添加的类,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/48784154/

10-13 09:31