-1

ナビゲーション メニューなどに使用される JQuery スクリプトを配置するためのコンセンサス ルールは何ですか? スクリプトを HTML ファイル自体に埋め込むのと、head 内でリンクするのとのどちらが最適ですか? スクリプトが HTML ファイルに埋め込まれていない場合、$(document).ready 関数は本当に機能するのでしょうか?

4

1 に答える 1

1

実際には、ファイルの下部、close-body タグの直前にリンクするのが「ベスト」です。その理由は、スクリプトが実行を開始する前に、すべてではないにしてもほとんどのマークアップとコンテンツがページに存在するためです。例外として、以前にスクリプトが必要な場合があります。その場合は head 内でリンクできますが、通常は非常にまれです。

さらに、Google (または jQuery.com) の CDN リンクを使用して、実際に jQuery をローカル フォールバックにリンクする必要があります。これは私が使用するものです:

<script type="text/javascript" src="//ajax.googleapis.com/ajax/libs/jquery/1.9.1/jquery.min.js"></script>
<script type="text/javascript">
if (typeof jQuery == 'undefined'){document.write(unescape("%3Cscript src='js/jquery-1.9.1.min.js' type='text/javascript'%3E%3C/script%3E"));}
</script>

document.ready 関数に関しては、jQuery ライブラリが呼び出された後、ドキュメントの末尾近くに含める必要がある外部スクリプト ファイルに含める必要があります (別の場所に配置する場合はまれです)。

それが長い答えです。

短い答えは、はいです。doc.ready 関数は、html ファイルに直接配置されていなくても、「本当に機能する」ことができます。

編集:私がそれについて考えている間に、いくつかの追加のポイントがあります(あなたが気にするかもしれないし、気にしないかもしれません)。

  • 複数の doc.ready 関数を持つことができます。これらは、ブラウザが検出した順序でスタックされ、ページの読み込みが完了すると実行されます。

  • Doc.ready は、コードベースのコンテンツ (html、css、js) の読み込みが完了すると実行されます。すべての画像やその他のメディア コンテンツの読み込みが完了した後にのみスクリプトを実行する必要がある場合は、次を使用できます。$(window).load(function(){ ..stuff.. });

于 2013-06-28T01:50:49.410 に答える