javascript - 更改被点击的唯一按钮的颜色
问题描述
我的意思是我只想更改我单击的按钮的 CSS 属性,同时将其他按钮设置为以前的颜色。希望我清楚地解释了我的问题
for(let i = 0; i < categoryBtns.length; i++) {
categoryBtns[i].addEventListener('click', function() {
let attr = this.getAttribute('id');
if(categoryBtns[i - 1].id != attr || categoryBtns[i + 1].id != attr) {
log([i]);
console.log('works');
this.style.backgroundColor = '#000000';
} else {
log('no');
}
})
}
我还有只显示具有当前类别的 div 的代码。我应该在显示和隐藏 div 的同时编码按钮吗?
$(document).ready(function() {
$('.category-item').click(function() {
let category = $(this).attr('id');
if(category == 'all') {
$('.prod_item').addClass('hide');
setTimeout(function() {
$('.prod_item').removeClass('hide');
}, 300);
} else {
$('.prod_item').addClass('hide');
setTimeout(function() {
$('.' + category).removeClass('hide');
}, 300);
}
});
});
解决方案
我希望我能正确理解你想要什么
const btns = document.querySelectorAll('.btn')
btns.forEach(btn => {
btn.addEventListener('click', () => {
btns.forEach(b => {
(b.classList.contains("active"))?
b.classList.remove("active"):true
});
btn.classList.add("active")
});
})
.active {
background-color: blue;
}
<button class = "btn">Click Me</button>
<button class = "btn">Click Me</button>
<button class = "btn active">Click Me</button>
<button class = "btn">Click Me</button>
<button class = "btn">Click Me</button>
推荐阅读
- arrays - 在scala spark中沿属性拆分或分解多维数组
- python - 在 Flask 中上传文本文件并在 html 中读取
- java - 将单词映射到单个字符
- python - ModelChoiceField 不显示 ForeignKey 选择
- java - SonarQube扫描Git Submodule项目时,只扫描超级项目的文件
- c# - 在 ComboBox 值上更新 DataGrid 后面的模型已更改
- angular - 升级到 ag grid 版本 23 后,表单控件标签缺少可访问性问题
- sql - 如何在 SQL Server 2008 中找出两列之间的数字
- apache-kafka - 我如何在 Kafka 中设置不从它离开的地方消费?
- ruby - Thin 和 Puma 因类似问题而失败 - 错误:无法在 Mac 上使用 OpenSSL@1.1 构建 gem 原生扩展