2012-01-30 14 views
3

document.ready()がトリガーされると、JQueryは$(document).ready()のバインドを解除します。

jQuery(document).trigger("ready").unbind("ready"); 

私は私のヘルパー関数に(jQuery.ready() OR jQuery(document).trigger("ready")を呼び出す)を手動でそれを呼び出すことができるように$(document).ready()を再バインドします。

ドキュメントの準備とヘルパーの両方で別の関数を記述して呼び出すことはできますが、どのページでも使用できるジェネリックヘルパーを作成したいので、これを行うことはできません。

どのようにすればいいですか?

+3

は行うには正しいことのように聞こえます。なぜこれが実用的でないのかについてもっと詳しく説明することができますか? –

+0

@Timir、セマンティクスは異なりますが、 'document'の' ready'の代わりに 'window'の' load'にバインドしますか?あなたが望むように、 'load'イベントは後で再起動することができます。 –

答えて

1

これは良い考えのようには聞こえませんが、サードパーティのプラグインは、準備完了イベントが複数回表示されると悪い動作をする可能性があります。 jQuery.holdReady()があります.jQueryを先に渡すまで待機させることができます。

1

あなたは、単にあなた自身の方法でロジックを配置し、.ready()メソッド内で複数回のロジックをトリガしたい場合:別の関数を使用して

$(document).ready(function() { 
    myReadyFunction(); // Called when the DOM is ready 
}); 

function myReadyFunction() { // Called when the DOM is ready & whenever you want 
    //Do stuff 
} 
関連する問題