2016-08-19 12 views
2

私はコードjquery trigger( 'resize')関数は一度しか機能しませんか?

function fixFooter() { 
    var wrapper = $('#disqus_wrapper').height(); 
    if (wrapper > 200) { 
     $(window).trigger('resize'); 
    } 
}; 

var element = $('#disqus_wrapper'); 
new ResizeSensor(element, function() { 
    fixFooter(); 
}); 

のこの2枚を持っている期待される効果は、ウィンドウがのdiv#のdisqus_wrapperは、高さを変更するたびにサイズを変更することです。 (コメントとフッタの重なりを修正する)

コードはうまく動作しますが、ページが読み込まれた後に1回だけ動作します。 divの高さが変わるたびにサイズを変更する必要があります。私はアラートでトリガー( 'サイズ変更')機能を切り替えようとしましたが、すべてが完全に機能します。トリガー( 'サイズ変更')が一度しか動作しない理由と修正方法

更新;

htmlですちょうどこの私が、私はこのライブラリ https://github.com/marcj/css-element-queries(ResizeSensor.js)

+1

私たちもあなたのイベントリスナーを見せてください。 – eisbehr

+0

@eisbehr、私は高さの変化を検出するためにhttps://github.com/marcj/css-element-queriesを使用しています。検出は適切に動作し、alert()を使用するとdivが変更されるたびにdiv.hutが変更されます。ただし$(window).trigger( 'resize'); – Askaoru

+0

あなたのHTMLとイベントリスナーを投稿してください@Askaoru –

答えて

0

あなたがする必要があるを使用していますdivの高さの変化を検出するためのDisqusのコメントシステム

<div id="disqus_wrapper"><div id="disqus_thread"></div></div> 

をロードしていますので、ウィンドウのサイズ変更イベントで関数fixFooter()を呼び出します。

$(window).resize(function() { 
     fixFooter(); 
    }); 
+0

それはうまく動作しません:(それは私に 'Uncaught RangeError:最大呼び出しスタックサイズを超過しました' – Askaoru

関連する問題