2012-04-26 12 views
5

単純なページがあり、ドキュメントにロードイベントを添付しようとしています。これを行うためにjQueryで使用するイベントハンドラが不明です。私は$()$(document).ready.loadを試しましたが、いずれも適切なタイミングでコードを実行していないようです。 .on.liveを使用する必要がありますか?それとも私が間違っていることがありますか?ここではサンプルです:私はこれを実行するとどのjQueryイベントハンドラがページの読み込みに対応していますか?

<!DOCTYPE html> 
<html> 
<head> 
<script type="text/javascript"> 
    $(document).ready(
     showWidth() 
    ); 
    function showWidth() { 
     alert($('#textTitle').width()); 
    } 
</script> 
</head> 
<body> 
<div class="page"> 
     <div id="title"> 
      <h1 id="textTitle">yo</h1> 
     </div> 
</div> 
</body> 
</html> 

アラートがnullが表示されます。

答えて

6

あなたのコードを機能に忘れてしまった。

$(document).ready(function() { 
     showWidth(); 
    }); 

それとも単に

$(function() { 
     showWidth(); 
    }); 
+0

または、短い$(showWidth); – GillesC

+0

興味深い。私はそれがちょうど1つのライナーだったので、私はそこに閉鎖を必要としないと思った。 –

+1

これはコールバックではありません。あなたが入力したものは、関数を実行して戻り値を引数として代入しようとするgoindでした。これは未定義になるので、DOMが準備される前にアラートがポップアップしていたのです。 ()をそのままにしておくと、関数参照を割り当てて実行しません。 – GillesC

1

このhttp://jsfiddle.net/vdCwE/

を試してみてください。また、あなたがあなたのページにjQueryのを含めていることを確認していますか?私はあなたのコードでそれを見ていませんでした。

1

ローディングには2つの状態があります。一つは、「DOM準備」だけ

// the long way 
$(document).ready(function() { console.log("dom ready"); }); 
// the short way 
$(function() { console.log("dom ready"); }); 

を使用することによって求められることができているまたはあなたが(画像、のiFrameがなど)を使用することができ、実際のページの「負荷」を待ちたい

$(window).load(function() { console.log("everything should be loaded"); }); 
関連する問題