當另一個函數以類似於DOM事件的方式完成時,是否有方法來引發函數?當另一個函數被執行時Jquery引發函數
例如(我知道這是不可能的,但...)
$('body').on('myFunction', function(){
alert('My function was called.');
})
當另一個函數以類似於DOM事件的方式完成時,是否有方法來引發函數?當另一個函數被執行時Jquery引發函數
例如(我知道這是不可能的,但...)
$('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;
};
見MDN約傳遞給函數的arguments
object含參數的信息。不幸的是,使用slice
將其轉換爲普通數組是不必要的,因爲諸如IE9等瀏覽器無法正確地遵循ES5標準,這需要apply
才能接受任何類似數組的對象。
謝謝!它具有全球範圍,你的例子完美地工作:D – imperium2335
不知道這是否完全是你想要的。但我認爲你應該試試jquery Deferred
對象。看看這裏的jquery文檔 - Jquery Deferred Object。
簡要概述 -
我編譯了這個小提琴作爲演示。 - FIDDLE。
希望這會有所幫助。
我沒有看到完整的代碼,但爲什麼不在第一個函數的末尾調用第二個函數? –