javascriptで、最初の関数が「準備完了」のときに他の関数を呼び出す方法はありますか?
このようなもの:
ridiculousTimeConsumingFunction().onReady( newFunction() );
私の例を説明するために、あなたは彼女を見ることができます: http ://web.cinaird.se/pdf/test.htm
javascriptで、最初の関数が「準備完了」のときに他の関数を呼び出す方法はありますか?
このようなもの:
ridiculousTimeConsumingFunction().onReady( newFunction() );
私の例を説明するために、あなたは彼女を見ることができます: http ://web.cinaird.se/pdf/test.htm
ridiculousTimeConsumingFunction(); newFunction();
newFunction()
終了後に実行されridiculousTimeConsumingFunction()
ます。
ridiculousTimeConsumingFunction(newFunction);
また、のようなことをして、ridiculousTimeConsumingFunctionを次のように定義することもできます。
function ridiculousTimeConsumingFunction(callback) {
for (var i=0;i<1000000000;i++) {
};
callback();
}
これは同じ効果があります。
実際、これは非同期イベントであり、時間のかかる関数ではないため、すべてを破棄します...コールバックを使用する必要があります。
function longFunction (callback) {
setTimeout(function(){
$(".theDiv").css('height', 200 );
callback();
}, 1000);
}
次に、次のように呼び出します。
longFunction(function () {
$("#info").html(info);
});
「準備完了」の概念は、通常、例のような非同期関数では定義されていません。通常、この種のことはコールバックを介して行われます。
function asyncFunc(callback) {
setTimeout(function() {
doSomething();
callback();
}, 1000);
}
asyncFunc(function() {alert('Done!');}
DOMの準備ができたときに準備ができているという意味の場合、そのようなイベントはありませんが、DOMの準備ができたときにjQueryの ready
ハンドラーを使用して関数を起動できます。
load
Javascriptを使用すると、次のようなイベントで関数を起動できます。
window.onload = function(){
// your function code here
};
または
window.onload = somefunction;
サンプルでは、「ridiculousTimeConsumingFunction」関数の実行にそれほど時間がかかることはありません。別の関数が1秒後に実行されるようにスケジュールされているだけです。
このようなことをしたい場合は、jQueryUIのエフェクトAPIを確認することをお勧めします。それはあなたが次々にアニメーションを「連鎖」させることを可能にし、あなたが求めている効果を達成するはずです。