Javascript Jquery addclass不在任何浏览器中工作

Javascript Jquery addclass不在任何浏览器中工作,javascript,jquery,Javascript,Jquery,我想使用jquery将类添加到元素中。我使用了推荐的语法,但jquery仍然不起作用。我想说的是,当用户单击注册时,他将看到注册表单,否则他将登录。此外,我还使用css将注册表单设置为隐藏。现在我正试图将class.active添加到元素中,但我被卡住了。我的html看起来像 jQuery(文档).ready(函数(){ $(“.signup_form”)。单击(函数(){ $(this.addClass('active'); }); }); 。注册表格{ 可见性:隐藏; } .主动{ 能见度

我想使用jquery将类添加到元素中。我使用了推荐的语法,但jquery仍然不起作用。我想说的是,当用户单击注册时,他将看到注册表单,否则他将登录。此外,我还使用css将注册表单设置为隐藏。现在我正试图将class.active添加到元素中,但我被卡住了。我的html看起来像

jQuery(文档).ready(函数(){
$(“.signup_form”)。单击(函数(){
$(this.addClass('active');
});
});
。注册表格{
可见性:隐藏;
}
.主动{
能见度:可见;
}

试试看,函数中的$this调用很可能指向事件的范围。所以不要对你的锚


锚点具有默认的单击行为,因此我们需要防止这种情况。

您不能单击具有
可见性:隐藏的元素,请尝试
不透明度

jQuery(文档).ready(函数(){
$(“.signup_form”)。单击(函数(){
$(this.addClass('active');
});
});
。注册表格{
不透明度:0;
}
.主动{
不透明度:1;
}


您可以使用
.show()
.hide()
切换登录表单和注册表单

我添加了一个片段,希望这就是你想要实现的。干杯

jQuery(文档).ready(函数(){
$(“.signup_form”)。点击(功能(e){
e、 预防默认值();
$(“#注册表格”).show();
$('#登录表单').hide()
});
$('#login')。在('click',函数(e){
e、 预防默认值();
$(“#注册表单”).hide();
$('#登录表单').show()
})
});
.active{
显示:块;
}
.注册{
显示:无
}

登录表单 报名表
为什么不使用
可见性
,而使用
显示
?如果你这样做了,它应该工作得很好

.user_form_signup {
     display: none;
}
.active {
     display: block;
}

选项1:如果addClass尝试使用ToggleClass,则改为

选项2:尝试使用宽度和高度来代替可见性,并将两者都设置为0。活动类的宽度和高度为“自动”或“根据您的喜好”


选项3:将addClass替换为ToggleClass,并将注册和活动阻止的显示设置为none,而不是visibility。您正在将单击事件附加到
注册表单
,该表单隐藏在CSS中。本质上,您正在将单击事件附加到一个不可见的元素。我不太清楚期望的是什么?如果
注册
按钮不可见,用户应该如何单击它?在您的示例中没有
用户表单注册
类的元素。但是,如果您添加这个元素(并在JavaScript中的选择器周围加上引号),它的工作方式与您希望的一样……正如我前面所说的,现在您已经编辑了您的问题,代码工作得很好。
.user_form_signup {
     display: none;
}
.active {
     display: block;
}