jquery - 激活按钮时切换元素的不同类名
问题描述
$(function () {
$("#my-buttons").on('click', 'button', function () {
$('button').not(this).removeClass('active');
$(this).toggleClass('active');
});
});
$(function () {
$('body').on('click', '.btn-display', function () {
$(".awesome-element").toggleClass("hidden shown");
});
});
$(function () {
$('body').on('click', '.btn-select', function () {
$(".awesome-element").toggleClass("selected");
});
});
$(function () {
$('body').on('click', '.btn-size', function () {
$(".awesome-element").toggleClass("small big");
});
});
#my-buttons {width: 1190px;max-width:100%;
margin: 0 auto;}
button {outline: 0;}
button.active {color:green;}
.awesome-element {padding:20px; width:240px; text-align:center; background:grey; margin-top:30px; color:#FFF;}
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
<div id="my-buttons">
<button class="btn-display">#1 toggle hidden-shown</button>
<button class="btn-select">#2 add/remove select</button>
<button class="btn-size">#3 toggle big small</button>
</div>
<div class="awesome-element hidden small">when a button is presed - respective classname must be toggled, while previously added classname changed to default</div>
如您所见,我的 jQuery 中有四个函数。它们几乎可以正常工作,但有一些错误:
- 我认为所有这些都应该是单一功能,而不是四个不同的功能。
- 如果您按下(一次)按钮#2,它会添加
selected
,awesome-element
但如果您按下按钮#1 或#3,它不会删除此元素。它留下selected
了,但它不应该。 - 与其他按钮相同。默认情况下
awesome-element
是hidden
andsmall
(参见原始 HTML),所以如果您按下按钮 #3 或 #1,它会切换相应的类(隐藏<->显示和小<->大)。因此,如果您awesome-element
变大(通过单击按钮#3)然后单击按钮#2 或#1,它会保持大,当它应该变为默认值时 -> 它很小。
请重新打开这个问题,因为这个问题没有回答它jQuery - 从元素中添加/删除类名并在按钮上切换活动类
解决方案
推荐阅读
- linux - 如何在 Bash Linux 中使目录可写(适用于 VS Code)
- ios - 如何使用 UIKit 将具有所有子视图和布局的 UIView 渲染到 UIImage
- typescript - 打字稿映射类型 - 无法添加其他属性
- r - 默认主题为 shinyDashboardThemeDIY
- python - Pandas iterrows 太慢了,我该如何向量化这段代码?
- sql - 存储过程 SQL exasol
- python - Python / Imblearn:有什么方法可以减少欠采样的计算时间?
- html - HTML圆形文本的CSS旋转动画,transform-origin不起作用
- python - 试图破解涉及替换然后柱状转置的两步密码
- java - 如何访问 JSON 对象 java 中的重复元素?