javascript - jQuery 的 addClass 不添加类

标签 javascript jquery html css

我正忙于登记表格。其中一个步骤是选择您的性别:

reg

现在,期望的结果是,如果有人点击男性图标,图标会变成蓝色,当有人点击女性图标时,图标会变成粉红色。

颜色切换的东西在悬停时起作用,但在单击时不起作用。这是我的 HTML:

<div id="submenugender">
    <div class="submenu"><div class="sprite male" id="setmale"></div></div>
    <div class="submenu"><div class="sprite female" id="setfemale"></div></div>
</div>

看起来很简单。所以加载了 .sprite 类,它只是设置了默认的高度和宽度 + 它加载了 Sprite 。然后加载 malefemale 类,其中包含一个 background-position 元素:

#registercontainer .submenu .male {
    background-position: -7px -462px;
}

#registercontainer .submenu .female {
    background-position: -60px -462px;
}

#registercontainer .submenu .male:hover, #registercontainer .submenu .male .active {
    background-position: -7px -397px;
}

#registercontainer .submenu .female:hover, #registercontainer .submenu .female .active {
    background-position: -60px -397px;
}

这里有一些 ID 和 HTML 中遗漏的东西,那些只是用于定位的包装器。

如您所见,我在 CSS 中创建了一个 active 类,用于当有人点击时。那里设置的位置是彩色的。 现在,当有人单击一个图标时,我希望它看到事件类并改变颜色。这是由 jQuery 完成的:

 $("#setmale").click(function() 
  {
      $('#registercontainer .submenu .male').addClass('active');
  });
  $("#setfemale").click(function() 
  {
      $('#registercontainer .submenu .female').addClass('active');
  });

但是愚蠢的事情就是行不通......我是不是在选择器或其他方面犯了任何错误?

谢谢。

最佳答案

我很容易解决你所拥有的,就是将你的 css 更改为此;

#registercontainer .submenu .male:hover, #registercontainer .submenu .male.active {
    background-position: -7px -397px;
}

#registercontainer .submenu .female:hover, #registercontainer .submenu .female.active {
    background-position: -60px -397px;
}

请注意 .male.active.female.active 链接在一起。 Read more about css chaining

对您的 JS 代码还有一点改进是将您的点击代码更改为 $(this).addClass('active'); as $(this) 是引发点击事件的元素。

你的 js 没有错,忽略所有让你掉进兔子洞的 js 答案。

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

相关文章:

javascript - WordPress中如何仅在用户滚动页面时显示菜单

javascript - 无法使用 jquery 触发 mousedown 事件

javascript - 单击按钮之前控件激活

javascript - 从具有相同类的多个输入标签中获取 html

html - IE 导航菜单问题

javascript - 使用 jquery 从底部偏移背景

javascript - 如何在 Asp .Net Core 中设置序列化

javascript - 用于同一元素中重复元素的 JQuery 选择器

javascript - 单击时 Bootstrap 选项卡刷新

javascript - 对太宽的下拉菜单项的建议?