2

onResize が同じページに戻るフォームを送信してページをリロードするメソッドを呼び出す Web ページがあります。

この Web ページは非常に大きく、ページ内の何かがページのサイズを変更したり、onResize イベントが再度呼び出されたりします。

この無限ループを止める解決策は何でしょうか?

onResize イベントが呼び出される原因がわかりません。たとえ呼び出したとしても、既に機能しているものを変更したくありません。

on resize メソッドに追加して、無限ループに入らないようにすることはできますか

$(window).resize(function(){
     refreshMainView(); // submits form which redirects back to the same page
});
4

2 に答える 2

0

(編集: user521180 のコメントに応じて取り消します。) リスナーをdocument.ready関数内に配置します。

$(function () {
    $(window).resize(function(){
        refreshMainView(); // submits form which redirects back to the same page
    });
});

resizeページがまだ DOM 要素を追加している間 (したがって、ページのサイズを計算している間)、ページがイベントをリッスンしているように思えます。

既に関数がある場合document.readyresize、関数内のイベントのonbeforeunloadバインドを解除し、ページが更新された後に再度バインドしてみてください。

$.unload(function () {
    $(window).unbind('resize');
});
于 2013-05-15T09:44:01.833 に答える
0

最初に呼び出したときにバインドを解除します。

$(window).resize(function(){
     refreshMainView(); // submits form which redirects back to the same page

     // now unbind it
     $(window).unbind('resize');
});
于 2013-05-15T09:50:43.430 に答える