私は jQuery と Web 開発を学んでいる初心者なので、これはばかげた質問かもしれませんが、Google でこれに対する答えを見つけることができません (おそらく、適切なキーワードを検索していないのでしょう)。簡単な HTML ファイル (jQuery をロードする「test.html」など) と、私が作成した外部 JavaScript ファイル (「test.js」など) があり、その中にボタンがあります。たとえば、
<html>
....
<script src="//ajax.googleapis.com/ajax/libs/jquery/1.10.1/jquery.min.js"></script>
<script src="scripts/test.js" type="text/javascript"></script>
....
<body>
<button type="button" class="button" id="my_button">test</button>
</body>
</html>
「test.js」には、次のものがあります。
$( "#my_button" ).click(function() {
alert('test');
return false;
});
しかし、ボタンをクリックしても機能しません。ただし、「test.js」の内容を「test.html」に入れると、次のようになります。
<html>
....
<script src="//ajax.googleapis.com/ajax/libs/jquery/1.10.1/jquery.min.js"></script>
<script type="text/javascript">
$(function() {
$( "#my_button" ).click(function() {
alert('test');
return false;
});
});
</script>
....
<body>
<button type="button" class="button" id="my_button">test</button>
</body>
</html>
できます。最初の質問は、コードを外部ファイルに挿入してロードすると機能する理由を説明してもらえますか? jQueryコードを動作させるには、常にjQueryコードをラップする必要があり$(function() {......}
ますか?
理想的には、HTML テンプレートに JavaScript コードを入れたくないのです。関連/2番目の質問: 上記のようにjavascript/jQueryコードを分離し、意図したHTMLテンプレートで機能させるための最もクリーンで最良の方法は何ですか?
ご回答ありがとうございます。