jquery .on 获取未捕获的范围错误:超出最大调用堆栈大小



我几乎阅读了所有关于 SO 的问题

未捕获范围错误:超出最大调用堆栈大小。

但没有为我工作。

我的问题是我在加载后正在更改一些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>

任何帮助将不胜感激。

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

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

你可以通过使用one而不是on来解决它,但副作用取决于逻辑的其余部分。

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

最新更新