Javascript,在第n次递归后以指数方式调用函数

Javascript,在第n次递归后以指数方式调用函数,javascript,Javascript,我刚刚开始使用Javascript和jQuery,在我的第一个项目中遇到了一些麻烦。我正在制作一个简单的21点游戏,它第一次就可以完美地运行 第一手牌结束后,单击按钮#playteach后,通过调用递归playGame()函数,游戏将重置并再次玩。这工作正常,但在执行PlayReach后,我的hitMe函数会为用户中断。这是一个系统代码,因此用户和PC都在执行相同的操作,但用户的行为不同,并且开始根据玩的游戏数量以指数方式调用hitMe函数 为什么在这种情况下,根据提供呼叫的用户/计算机,此代码

我刚刚开始使用Javascript和jQuery,在我的第一个项目中遇到了一些麻烦。我正在制作一个简单的21点游戏,它第一次就可以完美地运行

第一手牌结束后,单击按钮#playteach后,通过调用递归playGame()函数,游戏将重置并再次玩。这工作正常,但在执行PlayReach后,我的hitMe函数会为用户中断。这是一个系统代码,因此用户和PC都在执行相同的操作,但用户的行为不同,并且开始根据玩的游戏数量以指数方式调用hitMe函数

为什么在这种情况下,根据提供呼叫的用户/计算机,此代码的行为会有所不同?我如何着手修复它


该代码可在www.calebdwidlliams.com/blackjack上找到。您的问题在playGame函数中:

$("#hit").click(function(){
每次玩游戏时,你都会将点击功能连接到#hit元素。好吧,接下来的javascript游戏只是添加了额外的点击处理程序。仅应在playGame()范围外添加该hander一次,否则应使用以下方法删除以前的侦听器:

$("#hit").unbind();

您可以在
playGame
方法中绑定事件处理程序

这意味着每次运行它时,它都会将一个额外的处理程序绑定到所需的元素

因此,在使用该方法绑定之前,需要先解除绑定

无论何时执行
。请单击(…)
首先执行
解除绑定('click')

$("#stand").unbind('click').click(function(){


请在这里发布代码中最相关的部分。欢迎来到SO!注意,你仍然应该用你的代码更新这个问题,这样文章才有意义。否则这将被关闭。我应该如何发布代码?有没有一种更适合静坐的方法或礼仪?谢谢你的帮助。Caleb,问题已经结束,所以你现在可能无法更新它,但是你要做的是摘录你认为与你的问题最相关的代码部分。在您的情况下,您不知道问题的具体部分,因此可以将整个blackjackmod.js文件放在notes中。您将每行缩进四个空格,以便输入代码。粘贴代码的范围越窄,获得良好响应的机会就越大。因此,既然您怀疑“hitme点击”是问题所在,您可能刚刚粘贴了playGame函数。+1用于将解除绑定与点击处理程序内联。太棒了。谢谢你的帮助。我将熟悉unbind函数。
$("#hit").unbind('click').click(function(){
$("#playAgain").unbind('click').click(function(){