jQuery:超过递归和最大调用堆栈大小超过

时间:2014-06-13 08:20:19

标签: javascript jquery performance recursion callstack

我正在构建一个具有jQuery功能的应用程序,可以翻转单个卡片。但是,在Firefox和Chrome中,我不断分别收到“Too Much Recursion”和“Maximum call stack size”错误。

关于此事的其他文章,我在调用中添加了stopImmediatePropagation(),但我仍然得到错误......没有以前那么多,但仍然瘫痪的事情足以引起注意。

有一个基本的“卡”应该翻转,然后按钮和测试坐在上面,这不应该导致卡翻转。下面的工作原理但会引起jQuery冒泡的递归。

目前的代码是:

  $(document).on("click", ".card-container", function(e){
    e.stopImmediatePropagation();  
    $(this).flip();
  });
  $(document).on("click", ".btn", function(e){
    e.stopImmediatePropagation(); 
    $(this).click();
  });
  $(document).on("click", "p", function(e){
    $(this).click();
  });

我该怎么做才能防止这些错误发生?

干杯:)

1 个答案:

答案 0 :(得分:4)

以下代码块负责该错误,

$(document).on("click", ".btn", function(e){
    e.stopImmediatePropagation(); 
    $(this).click();
});

$(document).on("click", "p", function(e){
    $(this).click();
});

删除它。这没有任何意义。

DEMO

注意:在控制台上看到错误