javascript - jQuery 失去了添加的类

标签 javascript jquery

我有几个带有类 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/

相关文章:

jquery - 根据选择框选择显示图像

javascript - 打印收据样式

jquery - JFeed 支持 RSS 图像吗?

javascript - 调用带参数函数的reactJS render无法编译

javascript - Angular 自定义过滤器用于比较 ng-repeat 中的两个数字

javascript - 需要通过 WordPress 的基本网格插件将 rel 属性添加到 url 输出

javascript - 如何将 div 高度设置为用户显示器分辨率的 100%?

javascript - Jquery 数字插件不起作用?

javascript - 当我点击谷歌地图上的标记时,如何制作信息窗口

javascript - sqlite 查询返回错误 - 无法找出原因