-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,所以我們不能幫你做這件事 –
我知道它的行進方式是無限的,但我猜測在附加克隆後代價寬度沒有更新 –
這似乎是合乎邏輯的,雖然沒有人可以給你一個明確的答案,缺乏你所顯示的信息。 –