2011-11-15 6 views
1
<div class="actions"> 
     <h3>Actions</h3> 
     <ul> 
      <li><a href="/configurations">Configurations</a></li> 
     </ul>    
    </div> 


<script type="text/javascript" src="/jquery.min.js"></script> 
<script type="text/javascript"> 
     $('ul a').click(function(){ 
        alert(""); 
      }); 
</script> 

上記コードにはdocument.readyが必要です。どういう意味ですか、jsがhtmlより前に実行されるケースはありますかページの末尾にjを置く

答えて

2

.readyDOMContentLoaded(またはonreadystatechangeまたは他のブラウザの回避策の組み合わせ)へのショートカットです。このイベントは、DOMがビルドされたときに起動します。つまり、HTML全体がダウンロードされたときです。

</body>の前にスクリプトタグが最後のもの(divやその他の要素内にない)の最終結果が同じであれば、$(document).readyは必要ありません。スクリプトを<head>に入れておくと、コンテンツの読み込みが遅くなるので、これもお勧めします。

私は$グローバルでの問題を回避するために、このパターンを採用することをお勧めしますしたいけれども:

<script> 
(function($){ 
    $('ul a').click(function(){ 
     alert("") 
    }) 
})(jQuery) 
</script> 

これらの他の質問は興味深い読み取り:

+0

'jQuery(function($){})'はより良い方法です。ここで準備ができているドキュメントを使用するのに実際には何も費用がかからず、後でコードを移動すると混乱することになります。 – Eric

+0

"better"はここで主観的です - .readyのチェックは不要です。このようなクロージャを使用することは、ほとんどの人がよく理解しているはずです。 –

-1

あなたのケースでは、問題はないようです。 しかし、画像(<img />)を使用すると、まだ画像が表示されていなくても、文書があなたの機能を実行する(「準備完了」イベントを発生させる)可能性があります。

+0

DOMがロードされたときに画像がロードされるのを待つことはありません。 – Headshota

+0

あなたは 'load'イベントを考えています。 'DOMReady'はイメージがロードされる前に起動します。 –

関連する問題