单击按钮时的JavaScript骰子滚动

时间:2016-09-11 02:23:29

标签: javascript

我正在尝试使用Javascript制作一个简单的骰子滚轮,当点击该按钮时,该滚轮将显示1到6之间的随机数。

我有一个按钮:

<button id="roll">Click to Roll</button>

使用此脚本:

function diceRoll(min, max) {
    var min = Math.ceil(min);
    var max = Math.floor(max);
    var roll = Math.floor(Math.random() * (max - min + 1)) + min;
    console.log(roll);
}

document.getElementById("roll").onclick = diceRoll(1, 6);

首次加载页面时会显示随机数,但单击按钮时没有任何反应。单击按钮时,如何在页面加载时使其工作?谢谢。

1 个答案:

答案 0 :(得分:3)

请改用:

document.getElementById("roll").onclick = function() {
    diceRoll(1, 6);
};

当前代码的问题是,当运行该行时,执行diceRoll(1, 6),然后将调用该函数的结果分配给onclick处理程序。

您需要onclick处理程序来代替每次单击按钮时可以调用的函数。所以上面我创建了一个新功能,当被调用时,又会调用diceRoll(1, 6)

如果有帮助,这段代码就等同于你现在正在做的事情(并希望揭示出错的原因):

// Call diceRoll and store its result (which is undefined, since
// the function returns nothing).
var result = diceRoll(1, 6);

// Now take that result (undefined) and assign it to the button's
// onclick handler. This makes onclick undefined too.
document.getElementById("roll").onclick = result;