私はJavaScriptでティッカーを作成しています。そのスーパー親がティッカーを生成する関数に供給される非常に単純なHTMLマークアップがあります。この関数は、基本的には、.ticker-inner
を複数回(再帰的に)クローンし、親の幅がウィンドウの幅以上になるまで1つずつ追加します。HTML要素のクローン作成中にMaxiumコールスタックエラーが発生する
しかし、これらの機能をからオブジェクトにウィンドウスコープに移動すると、正常に動作しますが、今は最大の呼び出しスタックエラーをスローします。
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
方法で
このエラーは、 'buildTickerChildrenClones()'関数の再帰のために無限ループを作成したことを意味します。その関数の 'if'条件がなぜ失敗するのかを判断する必要があります。あなたは実際の例、あるいはHTML/CSSだけを含んでいないので、私たちはそれを助けることができません –
私はそれが無限に進むことを知っていますが、私はクローンを追加した後にその幅が更新されないと思っています –
それは、あなたが示した情報の欠如については誰もあなたに決定的な答えを与えることはできません。 –