0

ページの読み込み時に選択要素のサイズを設定する小さなjqueryを作成し、新しい自動サイズに基づいてコンテナのサイズを設定しようとしています。これは時々機能しますが、ページの読み込みが遅くなると失敗するようです。コードをデバッグして各行で一時停止すると、100% の確率で機能するため、次の行が発火する前に各アクションが完了していないと想定します。各行に setTimeout を追加してみましたが、少しは役に立ちましたが、常にではありませんでした。これを修正する方法はありますか?

$(document).ready(function() {

  //set select element to auto width
  setTimeout(function(){$("#PunchDD").width("auto");},5); 

  //Add some width to the element to account for custom drop down arrow
  setTimeout(function(){$("#PunchDD").width($("#PunchDD").width() + 17);},5);

  //Set container width a bit smaller to hide the stock drop down arrow
  setTimeout(function(){$("#PunchDDContainer").width($("#PunchDD").width() - 18);},5);
});

また、JavaScriptが機能していないときにフェイルバックに固定サイズを使用するため、cssでサイズをautoに設定したくありません。

4

1 に答える 1

1

ドキュメントの準備ができているのではなく、ウィンドウの読み込みで動作するようにイベントを設定します。

$(window).on('load',function(){
    // fun shtuffs
});

操作が行われる前にウィンドウと CSS の書式設定が既に読み込まれているため、これで問題は解決するはずです。

于 2013-04-02T15:05:31.963 に答える