【发布时间】:2021-01-03 10:10:21
【问题描述】:
我尝试为我的页面创建一个简单的喜欢/不喜欢功能。图像更改有效,但计数器无效,我不知道为什么。知道如何使它可行吗? 顺便说一句,我已经阅读了一堆关于 JS 喜欢/不喜欢系统的问题,但它对我来说并不适用。
const imageChange = document.querySelector('.likeClassQ')
var countL = 0;
var buttonLike = document.getElementById("likeButton");
var displayLike = document.getElementById("likes");
buttonLike.addEventListener('click', () => {
imageChange.classList.toggle('likeClassFilled')
})
buttonLike.onclick = function() {
if (buttonLike.classList == 'likeClass') {
countL++;
buttonLike.classList.add = "likeClassFilled";
} else if (buttonLike.classList == "likeClassFilled") {
countL--;
buttonLike.classList.add = "likeClass";
}
displayLike.innerHTML = countL;
}
.likeClass {
background-color: red;
background-repeat: no-repeat;
background-size: contain;
padding: 10px;
border: none;
}
.likeClassFilled {
background-color: green;
}
<span><span id="likes">0</span> Likes</span><br>
<button id="likeButton" class="likeClass likeClassQ">Like</button>
【问题讨论】:
-
您可以将所有逻辑放入第一个
addEventListener,而不是使用onclick定义第二个侦听器。另外,要检查元素是否有你需要使用的类classList.contains所以将buttonLike.classList == 'likeClass'更改为buttonLike.classList.contains('likeClass') -
谢谢,这是个好主意,而且也有效。我的意思是它的一部分有效。现在,当您单击按钮时,图像会发生变化并且计数器会增加,但第二次单击计数器会再次增加而不是减少。
标签: javascript html css arrays button