2011-07-14 11 views
1

私はJqueryを使い慣れています。例をhttp://w3schools.com/jquery/tryit.asp?filename=tryjquery_hide_pでご覧ください。ここでは、「Click Me」ボタンをクリックしてテキストの変更を行います。私の質問は、なぜ以下のコードが$(document).ready(function(){)}の下にラップする必要があるのか​​です。それ以外の場合、動作しません。なぜコードを '文書準備完了'にするのですか

ご協力いただきありがとうございます。

$("button").click(function(){ 
    $("p").hide(); 
    }); 
+1

イベントにバインド()する前にDOMを完全にロードする必要があるためです。代わりにjQueryの[独自のドキュメント](http://api.jquery.com/)( 'ready()'メソッドを読んでみることをお勧めします(http://api.jquery.com/ready/))あなたがそれを学ぶことについて真剣なら、w3schoolsの –

答えて

2

はい、このコードを$(document).ready()ハンドラにラップしなかった場合は、DOMがロードされていないためオブジェクトが存在しません。

これは、要素のメソッドを呼び出す前に、DOMが準備ができていることを確認する簡単なテストです。

4

これは、すべてのDOM要素が、あなたがそれをラップしていない場合は、それらを

0

にアクセスしようとする前にロードされ、それはあなたの要素を見つけない可能性がありますを確認します。ページを最初にビルドしてから、いくつかの機能を追加するための特定の要素を探すことができます。

「ページの読み込みが完了するのを待っているので、変更したい要素はすべてそこにあります」と言います。

関連する問題