[解決済み] Chrome/jQuery Uncaught RangeError: 最大呼び出しスタックサイズを超えた
2022-03-06 15:48:05
質問
エラー "Uncaught RangeError が発生します。クロームでは、最大呼び出しスタックサイズを超えました"というエラーが表示されます。
$('td').click(function () {
if ($(this).context.id != null && $(this).context.id != '') {
foo($('#docId').val(), $(this).attr('id'));
}
return false;
});
ページ内のセルは何万個もあることに注意してください。しかし、私は一般的にスタックオーバーフローを再帰に関連付けるが、この場合、私が見る限りでは何もない。
このようなラムダを作成すると、自動的にスタックに負荷がかかるのでしょうか。
今のところ、私が持っている唯一の回避策は、HTMLをレンダリングするときに各セルで明示的にonclickイベントを生成することですが、これはHTMLをはるかに大きくします。
解決方法は?
ページには何万ものセルが存在するため、すべてのセルにクリックイベントをバインドすると、パフォーマンスが極端に低下します。そこで、body &にクリックイベントをバインドし、そのセル要素がクリックのターゲットであったかどうかを調べるという、より良いやり方があります。このように。
$('body').click(function(e){
var Elem = e.target;
if (Elem.nodeName=='td'){
//.... your business goes here....
// remember to replace $(this) with $(Elem)
}
})
この方法は、ネイティブの "td" タグだけでなく、後から追加した "td" タグでもタスクを実行します。については、こちらの記事が参考になると思います。 イベントバインディング & デリゲート
または、単純に " を使用することもできます。 .on() jQueryの"メソッドでも同じ効果が得られます。
$('body').on('click', 'td', function(){
...
});
関連
-
[解決済み】最大呼び出しスタックサイズ超過エラー
-
[解決済み】Angular JS Uncaught Error。[インジェクター:モジュラー]。
-
[解決済み】JavaScriptのinnerHTMLで要素が更新されない
-
[解決済み】Redux TypeError: 未定義のプロパティ 'apply' を読み取れない
-
[解決済み] ローカルファイルを開くことができません - Chrome: ローカルリソースのロードが許可されていません
-
[解決済み】React-Routerの子が1つしかない。
-
[解決済み】Jestが予期しないトークンに遭遇した
-
[解決済み】このオブジェクトの "forEach "はなぜ関数でないのですか?
-
[解決済み】module.exports "モジュールが定義されていません"
-
[解決済み] jQuery Ajax呼び出し後のリダイレクトリクエストを管理する方法
最新
-
nginxです。[emerg] 0.0.0.0:80 への bind() に失敗しました (98: アドレスは既に使用中です)
-
htmlページでギリシャ文字を使うには
-
ピュアhtml+cssでの要素読み込み効果
-
純粋なhtml + cssで五輪を実現するサンプルコード
-
ナビゲーションバー・ドロップダウンメニューのHTML+CSSサンプルコード
-
タイピング効果を実現するピュアhtml+css
-
htmlの選択ボックスのプレースホルダー作成に関する質問
-
html css3 伸縮しない 画像表示効果
-
トップナビゲーションバーメニュー作成用HTML+CSS
-
html+css 実装 サイバーパンク風ボタン
おすすめ
-
[解決済み】TypeError: $(...).DataTable は関数ではありません。
-
[解決済み] Uncaught Invariant Violation: 前のレンダリング中よりも多くのフックをレンダリングした
-
[解決済み】JavaScriptのisset()に相当するもの
-
[解決済み】jquery $.ajaxオブジェクトのresponseJSONプロパティを取得する方法 [重複]。
-
[解決済み] [Solved] Uncaught TypeError: nullのプロパティ 'appendChild' を読み取ることができない。
-
[解決済み] エラー。モジュールhtmlが見つからない
-
[解決済み】React、Uncaught ReferenceError。ReactDOMは定義されていません
-
[解決済み】Vueのテンプレートまたはレンダー関数が定義されていない 私はどちらも使っていないのですが?
-
[解決済み】Babel NodeJS ES6: SyntaxError: 予期しないトークンのエクスポート
-
[解決済み】TypeError: AngularJSで未定義のプロパティ'get'を読み取れない