var goldCounter = document.getElementById("goldcounter");
var goldGenerator = document.getElementById("goldgenerator");
var gold = 0;
var goldperclick = 1;
goldCounter.innerHTML = 0;
function goldclick() {
goldCounter.innerHTML = gold + goldperclick;
}
goldGenerator.addEventListener("click", goldclick());
我使用这个JS代码尝试在每次单击按钮时将HTML段落的文本设置为gold的值,但是文本保持为1.为什么?
谢谢大家现在的工作! :d
答案 0 :(得分:3)
您正在调用该函数并将其结果传递给处理程序。你需要在不调用它的情况下传递函数。
你还需要实际增加你正在寻找的黄金,否则它总是innerHTML = 0 + 1
。
function goldclick() {
gold += goldperclick;
goldCounter.innerHTML = gold;
}
和
goldGenerator.addEventListener("click", goldclick);
应该有用。
答案 1 :(得分:2)
你必须增加黄金变量。它始终为1,因为您要将添加结果分配给元素。
function goldclick() {
//Add this
gold += goldperclick;
goldCounter.innerHTML = gold
}
答案 2 :(得分:1)
这一行存在问题:
goldGenerator.addEventListener("click", goldclick());
应该是
goldGenerator.addEventListener("click", goldclick);
您应该将函数goldclick
传递给addEventListener
。
您的代码当前正在做的是调用goldclick
,并将此函数的结果传递给addEventListener
。
答案 3 :(得分:1)
更改此
goldGenerator.addEventListener("click", goldclick());
到这个
goldGenerator.addEventListener("click", goldclick);
您希望将goldClick
作为回调传递,而不是函数调用的结果。