JavaScript onclick更改图像并增加计数器

r

我尝试对页面进行简单的“喜欢/不喜欢”功能。图像更改正在运行,但计数器无法运行,我也不知道为什么。任何想法如何使其可行?顺便说一句,我读了很多关于使用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>

休伯特·格热斯科维克
  1. 无需将功能分配给onclick和使用addEventListener只需使用一个并坚持下去。

  2. 您的CSS类到处都是。将一种用于一般样式,另一种用于您的状态。更好的是,data如果元素或什至是风格化的复选框,请使用属性。将CSS类和业务逻辑混合在一起很容易。

  3. classList具有toggleadd这样的方法includes,但是您必须将这些字段用作方法而不是简单字段。同样,您不能对==对象使用比较运算符()。您只能将其用于简单的值,例如字符串或数字。您可以通过在方法/函数名称后加方括号并在其中传递任何参数来执行函数/方法。使用赋值运算符(=)时,您不会调用任何东西。

  4. 您保存状态并导出当前状态的逻辑存在缺陷。我将其更改为在每次单击时切换一个班级。因此,您将找不到在条件内添加或删除的任何类。

const imageChange = document.querySelector('.likeClassQ')
var countL = 0;
var buttonLike = document.getElementById("likeButton");
var displayLike = document.getElementById("likes");

buttonLike.onclick = function() {
  if (buttonLike.classList.contains('likeClassFilled')) {
    countL--;
  } else {
    countL++;
  }
  buttonLike.classList.toggle("likeClassFilled");
  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>

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

如何在JavaScript中的类内增加计数器值

来自分类Dev

javascript更改图像onclick

来自分类Dev

如何在javascript中的新窗口中打开链接并仅在单击按钮时增加计数器?

来自分类Dev

使用javascript更改图像onclick

来自分类Dev

Javascript计数器-更改InnerHtml

来自分类Dev

JavaScript对象计数器未按预期增加

来自分类Dev

使用addEventListener来更新/增加Javascript中的计数器

来自分类Dev

如何在我的JavaScript游戏中添加计数器?

来自分类Dev

角度:长按增加计数器

来自分类Dev

SESSION循环,增加计数器

来自分类Dev

在 for 循环中增加计数器

来自分类Dev

Javascript增量计数器onclick事件

来自分类Dev

JavaScript删除模式onclick并减少计数器

来自分类Dev

尝试更改javascript中的计数器颜色

来自分类Dev

Javascript在计时器上更改图像

来自分类Dev

Javascript更改图像源

来自分类Dev

使用javascript更改图像

来自分类Dev

javascript递归计数器

来自分类Dev

JavaScript计数器问题

来自分类Dev

JavaScript 重启计数器

来自分类Dev

当 object.position.x 更改时增加计数器值

来自分类Dev

JavaScript音节计数器-每行计数

来自分类Dev

计数器值没有增加,在javascript中值保持不变

来自分类Dev

无法在Android中使用SharedPreferences增加计数器

来自分类Dev

如何在Ruby循环中增加计数器

来自分类Dev

在MySQL DB中增加计数器的最快方法

来自分类Dev

在更新循环中增加计数器?

来自分类Dev

在R中的for循环中增加计数器

来自分类Dev

在嵌套的foreach循环中增加计数器