【发布时间】:2020-11-03 20:25:57
【问题描述】:
我正在尝试为“活动”CSS 类切换“禁用”,以使某些 SVG 的填充属性在单击时发生变化。
我能够正确更改第一个元素,但是在尝试对第二个和第三个 SVG 进行相同操作时,它会更改第一个 div 中第一个元素的颜色。
HTML
<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');
}
}
【问题讨论】:
-
您是否在文档中添加了脚本标签?如果有,是否添加到页面底部?
标签: javascript html css toggle