【发布时间】:2022-01-08 08:57:06
【问题描述】:
我想在单击另一个元素时在所有具有相同类的元素上切换一个 css 类。
我让它使用 jQuery,但需要切换到纯 JavaScript。
有效的 jQuery 版本:
$(function() {
$("#logo").click(function() {
$(".grey").toggleClass("white", 1000);
$(".red").toggleClass("orange", 1000);
});
});
当您单击带有id="logo" 的元素时,带有class="grey" 的所有内容都会切换white 类,而带有class="red" 的所有内容都会切换orange。
更新新问题!
我正在使用运行良好的@Vektor 代码——除了在 iPhone 5 上没有任何反应。 (它适用于我的 iPhone 12 和 7。)用于试验的简化代码:
<body>
<div id="logo" class="grey"><p class="red">Hello.</p>
</div>
<script>
const logo = document.getElementById('logo');
logo.addEventListener('click', () => {
const grey = document.querySelectorAll('.grey');
const red = document.querySelectorAll('.red');
grey.forEach(e => e.classList.toggle('white'));
red.forEach(e => e.classList.toggle('orange'));
}, false);
</script>
</body>
body{background-color: #000000;}
div#logo{
position:fixed;
top:0;
left:0;
height: 100vh;
width:30vw;
cursor: pointer;
}
.red{background-color:#4C0000;}
.orange{background-color:#d69215}
.grey{background-color:#485055;}
.white{background-color:white;}
我读到添加 cursor:pointer 将修复 JavaScript 在旧版 iPhone 浏览器的非传统可点击元素上不起作用的问题。没有。
【问题讨论】:
-
你自己的尝试在哪里?
-
最后一段 (
I've googled … Thank you in advance.) 没有为您的问题添加任何见解。而不是那段,您应该展示您尝试过的内容并解释您的方法遇到的问题 -
我自己的最佳尝试(仅在一个元素上切换)已被长期删除,取而代之的是随后更糟糕的尝试,并且可能令人尴尬的绝望黑客也被删除了。
-
为徽标使用锚或按钮标签。
标签: javascript jquery css