2012-01-18 19 views
2

jQueryを使い始めたばかりで、$(document).ready()を使用して、ページの読み込み時間。でJavaScriptをしかし

<html> 
<head> 
    <meta http-equiv="Content-Type" content="text/html; charset=UTF-8"> 
    <script type="text/javascript" src="https://ajax.googleapis.com/ajax/libs/jquery/1.7.1/jquery.min.js"> </script> 
    <link rel="stylesheet" type="text/css" href="styles.css" /> 
    <script type="text/javascript"> 
     $(document).ready(function(){ 
      $("#container").html("<p>Hello world</p>"); 
     }); 
    </script> 
    <title>Test</title> 
</head> 
<body> 
    <div id="container"></div> 
</body> 
</html> 

私は外部のJavaScriptファイルにリンクしている場合、およびインラインを置き換える:それは私がこの(この例では明らかに簡素化されますが、それは問題の挙動を示している)のようなインラインのJavaScriptコードを使用したときに正常に動作しますこの:

スタートのコードは

function start(){ 

$("#container").html("<p>Hello world</p>"); 

} 

何も起こらないです

$(document).ready(start()); 

。私は、外部のstart()関数に警告ボックスを置くと、関数内のコードが実行されているので、正常にポップアップします。コンソールにもエラーは表示されません。私は

document.getElementById("container").innerHTML = "<p>Hello world</p>"; 

$("#container").html("<p>Hello world</p>"); 

を交換する場合は、コンソールはのdocument.getElementById( "コンテナ")がnullであると言って、エラーになります。

誰かがこれについて正しい方向に私を指すことができれば本当に感謝します。

答えて

4

あなたのコードのこの部分:

$(document).ready(start()); 

次のようになります。

$(document).ready(start); 

ので、最初の例では、ドキュメントの準備ができる直前にstart()を呼び出し、それの戻り値を渡しています$(document).ready()にあなたが望むものではありません。

start()関数への参照を$(document).ready()に渡していて、後でドキュメントが準備ができたらstart()関数を呼び出します。

+1

ああ、私を打つ+1 –

+0

それは働いた!どうもありがとう :) –

0

変更$(document).ready(start());~$(document).ready(start);

関連する問題