【问题标题】:RangeError: Maximum call stack size exceededRangeError:超出最大调用堆栈大小
【发布时间】:2018-02-06 06:45:49
【问题描述】:
  • 在我的代码库中出现此错误 RangeError: Maximum call stack size exceeded at this line that.playerAdd();
  • 我尝试通过返回 true 并设置 if 条件来修复它。
  • 我什至用过方法
  • 没有任何效果。
  • 你们能告诉我如何解决它吗?
  • 如果我在这一行保留断点 that.playerAdd();它不会超出这条线。
  • 你能告诉我如何解决它吗?
  • 在下面提供我的代码

    添新

    $("#swimming").unbind().on('click', function() {
          if(true)
          {
            that.playerAdd();
          }
          return true;
        });
    
      playerAdd(): any {
        if(true) {
          $('#swimming').trigger('click');
        }
        return true;
      }
    
    
      http://jsfiddle.net/ejv7k9sn/2/
    

【问题讨论】:

  • 因为点击事件会自己调用?
  • 感谢您的回复...您能告诉我如何解决它
  • 不调用自己?
  • 你能更新我的代码吗……太混乱了
  • 我不知道你想做什么。您的点击代码调用 player add 并且您的 playerAdd 调用您点击的按钮....

标签: javascript jquery html css kendo-ui


【解决方案1】:

你得到Maximum call stack size exceeded 因为你的函数是一个无限循环。 if(true) 将始终为 true,因此您的第一个处理程序将始终调用 that.playerAdd();。同样,if(true) 将始终保持为真,因此 $('#swimming').trigger('click'); 将始终被调用。这将无限次发生,并且最大调用堆栈大小将用完。您必须更改您的功能,以免每次都相互触发。

您将这些更改为什么取决于您希望程序做什么,因为到目前为止,很难说出您的最终目标到底是什么。如果您发布更多代码或有关您希望这样做的详细信息,我们可能会提供更多帮助。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2021-05-30
    • 2021-07-11
    • 2019-07-05
    • 2015-04-26
    • 2014-06-11
    • 2020-07-29
    相关资源
    最近更新 更多