-1
我在javascript中创建一个代码。有一个非常简单的HTML标记,其超级父代被添加到创建代号的函数中。该函数基本上可以多次克隆.ticker-inner
(递归),并且一个接一个地追加直到它的父宽度变得等于或大于窗口宽度。克隆HTML元素时Maxium调用堆栈错误
但是,如果我将这些函数从SU对象移到窗口范围,它们可以正常工作,但现在它会引发最大调用堆栈错误。
var SU = {
createTicker: function(tickerWrapper) {
var tickers = tickerWrapper.find('.tickers'),
child = tickers.find('.ticker-inner');
SU.buildTickerChildrenClones(tickers, child);
},
buildTickerChildrenClones: function(tickers, child) {
var tickerWidth = parseInt(tickers.outerWidth(), 10);
var windowWidth = jQuery(window).width();
if (tickerWidth + 35 <= windowWidth) {
child.clone().insertAfter(child);
SU.buildTickerChildrenClones(tickers, child);
}
}
}
我想,tickers
变量失去其参考。
任何帮助表示赞赏。 感谢
该错误表示由于'buildTickerChildrenClones()'函数的递归,您创建了一个无限循环。你需要确定为什么你的'if'条件在该函数中不会漏掉。你还没有包括一个工作的例子,甚至只是HTML/CSS,所以我们不能帮你做这件事 –
我知道它的行进方式是无限的,但我猜测在附加克隆后代价宽度没有更新 –
这似乎是合乎逻辑的,虽然没有人可以给你一个明确的答案,缺乏你所显示的信息。 –