0

選択リストの中央にテキストを配置する必要があります。CSSのみを使用するクロスブラウザとデバイスメソッドはないため、iveはJavaScriptを使用してテキストのインデントを設定しました。

コードは選択リストからテキストを取得し、それをスパンに追加し(cssを使用するとテキストが同じサイズになります)、スパンの幅を測定します。その値を使用すると、テキストのインデントが何である必要があるかを理解するためにいくつかの簡単な計算が必要になります。

$(window).load(function() {
  function textIndentFunc () {
     textString = $('#from-1 :selected').text();
     $('#hidden').text(textString);
     textWidth = $('#hidden').width();
     inputWidth = $('#from-1 select').width();
     indentMy = (inputWidth / 2) - (textWidth / 2);
     $('#from-1').css('text-indent',indentMy); 
}
$('#from-1 select').change(function() {
    textIndentFunc();
});
textIndentFunc();
});

ほとんどの場合、このコードは正常に機能しますが、何も実行されないように見える場合があります。その場合、通常、ページを更新すると修正されます。なぜこのコードはとても気まぐれなのですか?それはdomを操作しなければならないことと関係がありますか?

ありがとう

4

1 に答える 1

4

しないでください$(document).ready() $(window).load()

$(document).ready()関数を呼び出すと、DOMが処理されて操作できるようになると呼び出され、load()すべてのアセット(画像、サウンド)が読み込まれるとコールバックされます。

于 2012-05-22T14:45:49.427 に答える