我正在尝试切换“活动”CSS 类的“禁用”,以使某些 SVG 的填充属性在单击时发生变化。
我能够正确更改第一个元素,但是当尝试对第二个和第三个 SVG 进行相同操作时,它会更改第一个 div 内第一个元素的颜色。
超文本标记语言
<div>
<svg onclick="toggleColor()" class="home__like disable heart">
<use xlink:href="img/sprite.svg#icon-heart-full"></use>
</svg>
</div>
<div>
<svg onclick="toggleColor()" class="home__like disable heart">
<use xlink:href="img/sprite.svg#icon-heart-full"></use>
</svg>
</div>
<div>
<svg onclick="toggleColor()" class="home__like disable heart">
<use xlink:href="img/sprite.svg#icon-heart-full"></use>
</svg>
</div>
CSS
.disable {
fill: #fff;
}
.active {
fill: $color-primary;
}
JavaScript
function toggleColor() {
const toggleHeart = document.querySelector('.heart');
if(toggleHeart.classList.contains('disable')) {
toggleHeart.classList.remove('disable');
toggleHeart.classList.add('active');
} else {
toggleHeart.classList.remove('active');
toggleHeart.classList.add('disable');
}
}
狐的传说
蝴蝶刀刀
相关分类