Javascript 克隆HTML元素时出现最大调用堆栈错误
我正在用JavaScript做一个代码。有一个非常简单的HTML标记,它的超级父对象被输入到创建ticker的函数中。该函数基本上会多次(递归地)克隆Javascript 克隆HTML元素时出现最大调用堆栈错误,javascript,jquery,recursion,Javascript,Jquery,Recursion,我正在用JavaScript做一个代码。有一个非常简单的HTML标记,它的超级父对象被输入到创建ticker的函数中。该函数基本上会多次(递归地)克隆.ticker internal,并一个接一个地追加,直到其父项的宽度等于或大于窗口宽度 但是,如果我将这些函数从SU对象移动到窗口范围,它们工作正常,但现在它抛出了最大的调用堆栈错误 var SU={ createTicker:函数(TickerRapper){ var tickers=tickerWrapper.find('.tickers')
.ticker internal
,并一个接一个地追加,直到其父项的宽度等于或大于窗口宽度
但是,如果我将这些函数从SU对象移动到窗口范围,它们工作正常,但现在它抛出了最大的调用堆栈错误
var SU={
createTicker:函数(TickerRapper){
var tickers=tickerWrapper.find('.tickers'),
child=tickers.find('.tickerinternal');
SU.BuildTickerChildrenceles(股票、儿童);
},
BuildTickerChildRecones:函数(tickers,child){
var tickerWidth=parseInt(tickers.outerWidth(),10);
var windowWidth=jQuery(window).width();
如果在buildtickerwidth
方法中(tickerWidth+35,则将outerWidth
设置为较小的值以创建退出条件
那么在这一行呢,
var tickerWidth = parseInt(tickers.outerWidth(), 10);
ticketWidth
总是会在每次buildticketrchildrenclones
调用中给出相同的值
该函数基本上可以多次克隆.ticker内部
(递归)并一个接一个地追加,直到其父级
宽度变为等于或大于窗口宽度
因此,您需要检查其父项的外径,而不是检查股票代码的外径
var tickerWidth = parseInt(tickers.parent().outerWidth(), 10);
只要标记器
的设计不是为了将自己包装到下一行,这应该是可行的。该错误意味着由于buildTickerChildrences()的递归,您已经创建了一个无限循环
函数。如果该函数中的条件从未丢失,您需要确定为什么该函数中的条件从未丢失。您没有包含一个工作示例,甚至没有包含HTML/CSS,因此我们无法帮助您实现这一点。我知道它是无限的,但我猜在添加clonest后,标记宽度不会更新,这似乎是合乎逻辑的,尽管没有e可以给你一个明确的答案,你所展示的信息的缺乏。