首页 > 解决方案 > ++ 在我的函数中没有添加正确的数字

问题描述

在这段代码中,我想让 3 div 的计数在您向上滚动时加一,在您向下滚动时计数。出于某种原因,您第一次滚动它并没有为所有 div 执行此操作,并且它们没有正确加起来。有人可以帮忙吗?

var Value = 1;

function show() {
    if (Value === null) {
        Value = 1;
    }
    document.getElementById("ValueCenter").innerHTML = Value;
    document.getElementById("ValueCenter").addEventListener('wheel', function (e) {
        if (e.deltaY < 0) {
            add();
        }
        if (e.deltaY > 0) {
            decrease();
        }
    });

}
function showRest() {
    document.getElementById("ValueUpper").innerHTML = Value - 1;
    document.getElementById("ValueDown").innerHTML = Value + 1;
}

function add() {
    document.getElementById("ValueCenter").innerHTML = Value++;
    document.getElementById("ValueUpper").innerHTML = Value++;
    document.getElementById("ValueDown").innerHTML = Value++;
}
function decrease() {
    document.getElementById("ValueCenter").innerHTML = Value--;
    document.getElementById("ValueUpper").innerHTML = Value--;
    document.getElementById("ValueDown").innerHTML = Value--;
}
#ValueUpper, #ValueCenter, #ValueDown{
  font-size: 20pt;
}
<!DOCTYPE html>
<head>
    <title>1</title>
<link rel="stylesheet" type="text/css" href="css/wheel.css">
<link rel="stylesheet" href="style.css" type="text/css"/>
<script src="js/jquery-3.2.1.min.js"></script>
<script src="js/wheel.js"></script>
</head>
<body onload="show(); showRest();">
        <div id="ValueUpper"></div>
        <div id="ValueCenter"></div> 
        <div id="ValueDown"></div>
</body>

标签: javascripthtml

解决方案


您可以使用增量运算符++的前缀表示法,它首先增加值然后返回该新值,而不是使用后缀表示法(减量运算符--也是如此。

document.getElementById("ValueCenter").innerHTML = ++Value;
//                                                 ^^       prefix

推荐阅读