我有几个带有类 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
元素并且您的点击实际上是重新加载页面,或者使用的按钮也具有相同的效果,从而导致所有类恢复为默认值。
解决方案
您可以通过使用点击事件的参数来修复此问题,如下所示:
$('.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/