jquery .on获取Uncaught RangeError:超出最大调用堆栈大小

时间:2013-10-17 08:10:11

标签: javascript jquery

我几乎阅读了所有关于

的问题
  

未捕获RangeError:超出最大调用堆栈大小。

但不适合我。

我的问题是我在加载后正在更改一些div文本,这与我合作。但是,控制台显示Uncaught RangeError错误。 这是我的JS:

<script type="text/javascript">
            $('#report-error').on("DOMNodeInserted DOMCharacterDataModified" ,function(){
                $('#report-error').text("error happened");

            });           
 </script>

这是我应用jquery之后的HTML:

<div id="report-error" class="report-div error" 
style="display: block;">error happened
</div>

任何帮助将不胜感激。

1 个答案:

答案 0 :(得分:4)

发生错误是因为运行jQuery方法DOMNodeInserted时会触发.text()事件,因为此方法会将文本节点插入容器中。

简而言之 - 处理程序将调用它自己的事件......

您可以使用one代替on来解决此问题,但副作用取决于您的其余逻辑。

$('#report-error').one("DOMNodeInserted" ,function(){
    $('#report-error').text("error happened");
});