3

私はJavaScriptで数か月開発しており$(document).ready(function(){、すべてのスクリプトの最初に使用しています。他の人がスクリプトでこれを使用していないことに気づきましたが、それなしでは私を機能させることはできないようです。コードをよりクリーンに保ちたいのですが、すべてのグーグル検索で、コードを取り除く方法がわからないようです。

ページが読み込まれるとすぐにスクリプトを実行するようにブラウザに指示することは知っていますが、ページが読み込まれるときに各スクリプトを実行するようにブラウザに明示的に指示する必要がないように設定できるグローバルなものはありますか?それとも、HTMLファイルのどこにスクリプトが配置されているかというよりグローバルな問題ですか?

4

3 に答える 3

7

おそらく、ロードする前にDOMと対話しているため、document.readyが必要です。スクリプトは、まだ存在しない要素をどのように操作できますか?

スクリプトをファイルの最後に貼り付ける場合は、スクリプトは必要ありません。多くのJavascriptファイルは処理に時間がかかる可能性があるため(特に外部でホストされている場合)、これを行うこともお勧めします。それらをファイルの最後に置くと、多くの場合、ページの読み込み時間が短縮されます。

于 2012-04-24T21:12:53.157 に答える
6

$(document).ready(function() { ... });ドキュメントを操作できるようになるの$(function() { ... });を待つだけです。JavaScriptはページに表示される順序で実行されるため、スクリプトがインラインまたはセクションにある場合は、$(document).ready(function() { ... });またはを使用する必要があります。$(function() { ... });<head />

$(document).ready(function() { ... });またはを廃止するには、すべてのコンテンツの後、終了タグ$(function() { ... });の直前で、スクリプトをページの下部に移動します。</body>

とにかく、スクリプトを一番下に置くことは本当にベストプラクティスです。これやその他のベストプラクティスについては、 Html5BoilerplateYahoo!をご覧になることをお勧めします。ベストプラクティス

于 2012-04-24T21:12:37.493 に答える
1

規則は、$(document).ready()JavaScriptだけでなく、jQueryの一部です。レディ関数に関する彼らのドキュメントから:

これは、jQueryについて最初に学ぶことです。ページでイベントを機能させる場合は、$(document).ready()関数内で呼び出す必要があります。DOMがロードされるとすぐに、ページコンテンツがロードされる前に、その中のすべてがロードされます。

そうです、それは必須です。ただし、jQueryにはこれの省略形が付属しているため、次のように実行できます。

$(function() {
  //jquery code
};
于 2012-04-24T21:14:32.173 に答える