2011-10-21 11 views
1
jQuery(document).ready(function(){ 
    jQuery(".test").click(function() { 
     alert(1); 
    }); 
}); 

.ready。jqueryのは

あなたはその原因についてどう思いますか?私はすでにその機能を持つカスタムスクリプトを読み込んでいます。

<script type="text/javascript" src="/scripts/js/jquery.js"></script> 
<script type="text/javascript" src="/scripts/js/customScript.js"></script> 

いずれの回答も高く評価されます。

ありがとうございます!

+1

あなたのHTMLは見えますか? – rossipedia

+0

私は、アマダンの答えは正しいと思います。ありがとう@BryanRossに答えるために、私はあなたにUPします! :) – PinoyStackOverflower

答えて

2

<head>にロードする場合は、コード実行時に.testがまだロードされていません。したがって、jQuery(".test")[]を返すので、clickイベントは何も付けられません。 <script>を最後に<body>に移動すると正常に動作します。

1

表示される動作は正常で正しいです。

あなたが言うとき:

jQuery(".test").click(function() { 
    alert(1); 
}); 

それは「クラスのテスト 'で、今を存在するすべての要素を検索し、それらの要素にクリックハンドラを割り当てる」を意味します。そのようなコードをドキュメントの外に置くと、ブラウザはそのスクリプトの後にあるHTMLを解析しないので、ページの下に定義されている要素が見つからないため、DOMにはまだ存在しません。

document.ready(またはonloadイベントハンドラ)の中にコードを置くことは、ページ全体が解析されるまで実行されないことを意味します。この時点で、すべての要素が存在し、コードからアクセスできます。 (すべてのHTMLの後でページの一番下に置いても効果があります)