我正在尝试创建一个骰子滚子游戏,它将所有骰子的 throw 加到总和中。我希望能够同时打开多个骰子滚轮。
我的问题是所有骰子都被加在一起,而不是每个单独的滚轮计算自己的骰子。
你会在这里明白我在这个 fiddle 中的意思: https://jsfiddle.net/txdq7upw/9/
我认为问题出在这段代码中,因为它采用了每个名为“dice”的元素:
function getSumDiceValue() {
var dice = document.getElementsByClassName("dice");
var diceTotal = 0;
for (var i = 0; i < dice.length; i++) {
diceTotal += Number(dice[i].getAttribute("data-diceValue"));
};
return diceTotal;
};
我的猜测是,我需要以某种方式将骰子与它们自己的骰子滚轮关联起来,但我不知道如何去做。
我对 JavaScript 还很陌生,如果可以的话,我希望能提供一些代码示例。
最佳答案
你已经完成了所有的工作。只需在 getSumDiceValue()
中使用 diceWindowWrapper
变量而不是 document
来计算某个闭包中的骰子总和:
function getSumDiceValue() {
var dice = diceWindowWrapper.getElementsByClassName("dice");
// ...
}
您可以在文章 How do JavaScript closures work? 中阅读有关 JavaScript 闭包的更多信息。
关于javascript - 获取其自己窗口内的骰子总数。并不是所有的 window ,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/36698023/