gpt4 book ai didi

javascript - 根据单击哪个按钮在javascript中保存全局变量

转载 作者:行者123 更新时间:2023-11-29 10:45:15 25 4
gpt4 key购买 nike

我正在尝试将基于 console.log()/prompt 的 javascript 游戏转换为适用于浏览器的可视化游戏。为此,我将 jQuery 与我的 javascript 混合在一起。

1) 我尝试根据用户点击的按钮设置 nHands = 1、2 或 3。我有 3 个具有相同类 .smallbutton 和独特类 .oneh .twoh.threeh 的按钮>.

2) 用户点击3个按钮中的任意一个后,所有按钮都会消失,使用$('.smallbutton').detach();。这很好用。

问题在于上面的 1)。它似乎没有将 nHands = 设置为任何内容。因为为了让我的 recordBetAmount(); 运行/做某事,它需要设置为 1、2 或 3。为什么 nHands 没有设置为任何值?

这是 fiddle http://jsfiddle.net/cL9dx/ . 请注意, fiddle 包括我尝试过的第二种方式。

这是我的代码的相关部分:

var hand1, hand2, hand3, hD, nHands; //global vars

function numHands() {
$('<p>Choose the number of hands you want to play.</p>').appendTo('.message');
$('.oneh').click(function () {
nHands = 1;
$('.smallbutton').detach();
});
$('.twoh').click(function () {
nHands = 2;
$('.smallbutton').detach();
});
$('.threeh').click(function () {
nHands = 3;
$('.smallbutton').detach();
});
if (nHands > 0 && nHands < 4) {
x = 150000 / nHands;
if (nHands > 0) {
hand1 = new Hand("First Hand", x, x, ".hand1");
if (nHands > 1) {
hand2 = new Hand("Second Hand", x, x, ".hand2");
if (nHands > 2) {
hand3 = new Hand("Third Hand", x, x, ".hand3");
}
}
}
} else {
$('<p>ERROR!!!</p>').appendTo('.message');
}
}

....
numHands();
recordBetAmount();

编辑:我什至尝试将上面的 numHands 函数变成两个单独的函数,但似乎仍然没有将 nHands = 设置为任何值。

最佳答案

尝试将您的 numHands 函数逻辑分成两个函数。首先将事件处理程序附加到您的按钮,其他将按照此处的以下代码进行计算。并将您的代码包含在 $(document).ready(); 中。根据您的 jsFiddle 示例,您将 nHands 参数传递给函数,因此删除全局 nHands 声明。 Here是有效的jsFiddle。如果您读取了全局变量 nHands,这里还有另一件事,您的其他函数(如 recordBetAmount 等)应相应更改。因为他们不承认声明的 nHands 变量。它在控制台输出中给出 Uncaught ReferenceError: nHands is not defined。应修改 recordBetAmount 函数。您在文档准备好时调用它。但是,在我看来,这个函数应该在人们下注后调用。

$(document).ready(function()
{
suits = ["s", "d", "c", "h"];
deck = [];
var hand1, hand2, hand3, hD; //global vars

...

function numHands() {
var nHands;
$('<p>Choose the number of hands you want to play.</p>').appendTo('.message');
$('.oneh').click(function() {
nHands = 1;
$('.smallbutton').detach();
numhands2(nHands); });
$('.twoh').click(function() {
nHands = 2;
$('.smallbutton').detach();
numhands2(nHands); });
$('.threeh').click(function() {
nHands = 3;
$('.smallbutton').detach();
numhands2(nHands); });

function numhands2(nHands) {
console.log(nHands);
if (nHands > 0 && nHands < 4) {
x = 150000/nHands;
if (nHands > 0) { hand1 = new Hand("First Hand", x, x, ".hand1");
if (nHands > 1) { hand2 = new Hand("Second Hand", x, x, ".hand2");
if (nHands > 2) { hand3 = new Hand("Third Hand", x, x, ".hand3"); } }
hD = new Hand("Dealer", 4500200 , 4500200 , ".handD"); } }
else { $('<p>ERRRORRRRR</p>').appendTo('.message'); } }
}

....

});

或者 marge numHands2 和 recordBetAmount 函数。

function numhands2(nHands) {
console.log(nHands);
if (nHands > 0 && nHands < 4) {
x = 150000/nHands;
if (nHands > 0) { hand1 = new Hand("First Hand", x, x, ".hand1");
if (nHands > 1) { hand2 = new Hand("Second Hand", x, x, ".hand2");
if (nHands > 2) { hand3 = new Hand("Third Hand", x, x, ".hand3"); } }
hD = new Hand("Dealer", 4500200 , 4500200 , ".handD"); } }
else { $('<p>ERRRORRRRR</p>').appendTo('.message'); } }
}

function recordBetAmount() {
if (nHands > 0) { setBetAmount(hand1);
if (nHands > 1) { setBetAmount(hand2);
if (nHands > 2) { setBetAmount(hand3); } } } }

关于javascript - 根据单击哪个按钮在javascript中保存全局变量,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/20778379/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com