jQuery失去了添加的类

时间:2018-02-14 09:54:03

标签: javascript jquery

我有一个类mybtn的几个按钮。我需要在单击的那个上设置一个类mybtn-active,然后将其从当前具有它的那个中删除。

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

当我点击一个按钮时,当前活动就会丢失它的类,就像它应该的那样。但是点击的人没有上课。

我通过Chrome调试器传递了脚本,它可以运行。当代码退出脚本时,它就失去了类。有什么想法吗?

@musefan

[解决方案] 这些按钮在后台是<a>标签,我没有想到,因为这是我继承的代码,我没有写HTML。这就是问题所在。请参阅接受的答案。

3 个答案:

答案 0 :(得分:1)

你错过了

  

在第二行的选择器中。

应该是

$('.mybtn-active').removeClass('mybtn-active');

答案 1 :(得分:1)

正如我在评论中提到的那样,这是错误的错误。您必须将$('mybtn-active')更改为$('.mybtn-active')。看一下片段。

&#13;
&#13;
$('.mybtn').on('click', function () {
    $('.mybtn-active').removeClass('mybtn-active');
    $(this).addClass('mybtn-active');
});
&#13;
.mybtn-active {
 font-size:25px; 
}
&#13;
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
<button class="mybtn">Button1</button>
<button class="mybtn">Button2</button>
<button class="mybtn">Button3</button>
<button class="mybtn">Button4</button>
&#13;
&#13;
&#13;

答案 2 :(得分:1)

<强>假设

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

我还假设示例代码中的类选择器是问题的拼写错误,并且在原始代码中不是问题(因为OP明确指出删除类正常工作)。

我的假设已经由OP对此答案及其他答案的评论进行了验证。

<强>问题

我希望您的问题是您使用的是options("scipen"=100, "digits"=4)元素,而您的点击是 实际重新加载页面 ,或者使用的按钮也是相同的效果,从而导致所有类恢复为默认值。

<强>解决方案

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

a