3

簡単な質問ですが、私はすべての Javascript ファイルをドキュメントの末尾の本文の前に保持するという慣行に従っています。ただし、JS インクルードの前に表示されるボディ内の関数を呼び出したいため、失敗します。

ファイルを頭に移動せずにこの機能を動作させる方法はありますか?

乾杯!

4

5 に答える 5

2

はい、関数をラップできます

window.onload = function() {
   //call to your function here
};

ただし、ページの下部を変更できる場合は、おそらくこの解決策の方が優れています:
jQuery 税の支払いを停止する

于 2012-06-01T11:14:19.803 に答える
1

htmlドキュメントから関数を呼び出すこともできます。

<body onload="yourFunction()">

.jsで定義します

于 2012-06-01T11:20:38.803 に答える
0

はい、$(document).ready()domがロードされた後に呼び出される関数を使用して、すべてのjs関数が認識されるようにします。

$(function(){
  //do stuff here
}

ただし、jQueryファイルはその呼び出しの前にある必要があります。

jqueryを使用したくない場合は、関数の宣言方法によって異なります。varを使用するかどうかには違いがあります。このサンプルを見てください:

function FunctionDefinitionOrder() {
    assert(isRed(), "Named function definition doesn't matter");        
    assert(isGreen === undefined, "However, it's not the case with anonymous functions");

    function isRed() { return true; }
    var isGreen = function () { return true; };

    assert(isGreen(), "Anonymous functions are known only after the definition");
}
于 2012-06-01T11:14:54.510 に答える
0
$(document).ready(function() {
   // put all your jQuery goodness in here.
 });

この URL を確認してください:準備完了

于 2012-06-01T11:17:33.650 に答える
0

body onload イベントで関数を呼び出さない場合は、関数がページの下部にある場合でも、ページのどこからでも関数を呼び出すことができるはずです。ブラウザーは、ページをロードするときに見つかったすべての機能をメモリにロードするため、ページの準備ができたときにすべての機能を使用できます。関数が見つからない場合は、

  • 呼び出し時に関数名のスペルを間違えた (ありそうもない)

また

  • 呼び出される関数を含むスクリプト タグ間の JS にエラーがあります

2 番目のケースでは、JS コンソールにエラーがないかどうかを確認します。警告メッセージを出力するだけで、別のスクリプト タグで囲まれた別の関数への関数呼び出しを置き換えることもできます。この呼び出しは機能するが、「実際の」関数への呼び出しが機能しない場合は、JS コードのどこかにエラーがあり、関数のロードが妨げられています。

于 2012-06-01T11:32:25.007 に答える