1

ページの読み込み時に実行し、div#triggerをクリックしたときに再実行したい次の関数があります。div#triggerをクリックすると、すべて問題ありません。ただし、ページの読み込み時にコードが機能するように見えることもありますが、間違った量をインデントすることもあり、アラート(デバッグ目的でそこに配置しただけです)は発生しません。ありがとう

  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);

}

 $('#trigger').click(function(){
    textIndentFunc();
    alert('fire');
 });

textIndentFunc();

更新-このコードはdocument.readyで実行されることを述べておかなければなりません。

更新-コードをwindow.loadに移動しても、何も変更されません。

4

5 に答える 5

2

関数は document.ready 呼び出しで呼び出す必要があります

$(document).ready(function() {
   textIndentFunc();
});
于 2012-05-14T15:46:22.797 に答える
2

次のように関数呼び出しを document.ready ハンドラーでラップします...

$(function() {
    textIndentFunc();
});

そうしないと、ロードされているものとロードされていないものに応じて、さまざまな時点で異なる結果が得られます。

于 2012-05-14T15:46:05.333 に答える
0

ページの読み込み時にも実行される別の関数はありますか? この場合、2 つの機能が競合している可能性があるため...

于 2012-05-14T15:47:20.797 に答える
0

すでに電話をかけtextIndendFunc$(document).readyいるのに期待どおりの結果が得られない場合は、 に移動textIndentFuncしてみてください$(window).load

于 2012-05-14T15:49:44.073 に答える