2017-02-16 14 views
0

要素を動的に配置するためにjQueryを記述しました。ロード時には機能しますが、ウィンドウのサイズを変更すると機能しません。jQuery on( 'resize')が期待通りに動作しない

コード私が持っている:

$(document).ready(function() { 
     var offset = $("#kDropdown").offset(); 
     //$(".hidden-dropdown").css('position', 'absolute') 
     //$(".hidden-dropdown").css('left', offset.left); 
     $(document).on('resize', function() { 
     $(".hidden-dropdown").css('position', 'absolute') 
     $(".hidden-dropdown").css('left', offset.left); 
     }).trigger('resize'); 
    }); 


     <div class="hidden-dropdown hide"> 
     <ul> 
      <li><a href="#">Item One</a></li> 
      <hr /> 
      <li><a href="#">Item Two</a></li> 
      <hr /> 
      <li><a href="#">Item Three</a></li> 
     </ul> 
     </div> 

任意のアイデア?

+2

イベントをドキュメントではなくウィンドウにアタッチします。 – Teemu

答えて

3

通常、リサイズ1は、したがって、window次のとおりです。

$(window).on("resize", function() { 
    console.log("yay"); 
}); 

あなたが直接resize方法でそれを添付することができます。

$(window).resize(function() { 
    console.log("direct yay"); 
}); 

を彼らは両方とも同じです。

+0

何らかの理由で、私が移動しようとしている要素はこれではなくイベントがトリガーされています。 – Quesofat

+0

ここに背景があります。内部に 'console.log'を追加してイベントが呼び出されていることを確認してください。また、オフセットの 'console.log'を追加して実際にオフセットがあることを確認してください。最後に、.hidden-dropdownが存在することを確認してください。また、DOM(F12)にアクセスして、 '.hidden-dropdown'要素に新しいスタイルが適用されていることを確認できます。要素を右クリックすると、要素を調べることができ、その要素に直接DOMが開きます。 –

+0

スタイルは適用されていませんが、イベントハンドラは機能しています。スタイルを動的に再レン​​ダリングすることはできますか?私はそれが問題であるとは思わない。 – Quesofat

関連する問題