DOM イベントに似た方法で別の関数が完了したときに関数を起動する方法はありますか?
例(私はそれが不可能であることを知っていますが...)
$('body').on('myFunction', function(){
alert('My function was called.');
})
DOM イベントに似た方法で別の関数が完了したときに関数を起動する方法はありますか?
例(私はそれが不可能であることを知っていますが...)
$('body').on('myFunction', function(){
alert('My function was called.');
})
いいえ、関数を置き換えることができない限り(つまり、そのスコープにアクセスできない限り)、それを行う方法は絶対にありません。
スコープにアクセスできる場合は、非常に簡単になりますが、jQuery はまったく必要ありません。
var origFunc = theFunction;
theFunction = function() {
var args = Array.prototype.slice.call(arguments);
// run before the call
var rv = origFunc.apply(this, args);
// run after the call
return rv;
};
関数に渡される引数を含むarguments
オブジェクトについては、MDN を参照してください。残念ながら、IE9 などのブラウザは、配列のようなオブジェクトを受け入れるslice
必要がある ES5 標準に正しく準拠していないため、プレーンな配列に変換するために を使用する必要があります。apply