2012-04-12 10 views
0

私は古くて面倒なサイトを持っており、jQueryコードを整理しやすくするために、すべてのdocument.ready関数を1回の呼び出しで取得したい。問題は、ページのそれぞれに独自の.ready機能を持つインクルードの異なるセットが含まれていることです。jQuery document.ready関数を結合する

私はメインページでこれを入れていることを考え何を:

var documentReadyFunction = function() { 
    //do something 
}; 

そして、私のヘッダにこれを持っ/スクリプトファイル:私が知っていることができた場合は正常に動作します

jQuery(document).ready(function() { 
    if (typeof documentReadyFunction != 'undefined') { 
     documentReadyFunction(); 
    } 
}); 

1つの場所で必要なすべての準備ができている機能が必要ですが、私ができることをしたいのは、2つの呼び出しの間のファイルから.ready内で実行されるスクリプトを追加することです。いいアイデアですか?

答えて

0

この方法で試すことができます。

<script type="text/javascript" > 
$(function(){ 
    init(); 
}); 

function init(){ 
    someFunction(); 
    //other init stuff 
} 

function someFunction(){ 
    } 
</script> 

(OR)あなたはこの方法を行うことができ、複数のdocument.ready持つようにしたい場合:ここから

:あなたはこのことを認識している場合http://www.learningjquery.com/2006/09/multiple-document-ready

$(document).ready(function() { 
    // some code here 
}); 
$(document).ready(function() { 
    // other code here 
}); 
1

わからないが、しかし、私は$(document).ready(fn)への複数の呼び出しが許可されており、元の関数をオーバーライドするのではなく、それを呼び出すこともかなり確信しています。

詳細については、http://www.learningjquery.com/2006/09/multiple-document-readyを参照してください。いずれかにエラーがある場合は、以下の関数は実行されません。

+0

私はあなたが複数の.ready呼び出しを行うことができることを認識していますが、特定の順序で実行する必要のある機能があります(例:画像のレイジー読み込みとjcarouselの適用は、の画像)。私は彼らが使用されている場所を宣言し、適切な順序でそれらを読み込むことができるようにしたいと考えていました。(私の周りの.ready()が正しい方法で表示されるようにページをじゃまにする必要はありません)何らかの形で、私はいつも最初に一つの関数を押し、終わりに一つの関数を押し込むだろう。 –

関連する問題