我有一個自定義函數,我想向它添加一個回調函數,我查看了其他問題,但我無法真正找到我的問題的答案。所以基本上它看起來像這樣:jquery在自定義函數中調用回調函數
而且我有我想要觸發的回調不同的功能,最終我想打電話給myfunction的是這樣的:
myfunction(callback());
因此,誰能告訴我的方式來做到這一點?
我有一個自定義函數,我想向它添加一個回調函數,我查看了其他問題,但我無法真正找到我的問題的答案。所以基本上它看起來像這樣:jquery在自定義函數中調用回調函數
而且我有我想要觸發的回調不同的功能,最終我想打電話給myfunction的是這樣的:
myfunction(callback());
因此,誰能告訴我的方式來做到這一點?
你會這樣稱呼它(通過回調函數作爲參數)。這不會調用該函數,而只是傳遞一個引用,然後可以在您的自定義函數中稍後調用該引用。
你會定義函數,然後調用回調函數中這樣說:
function myfunction(cb) {
cb(arg1, arg2);
}
注意,還有的實際上是從您的自定義函數中調用回調函數多種方法。如果你只需要正常調用它,並且不關心this
的說法,你可以用:
cb();
如果你想設置的this
參數的東西,你可以用這個:
cb.call(thisArg, arg1, arg2);
如果你想沿着當前的參數傳遞或傳遞的參數數組並設置this
說法,你這樣做:
cb.apply(thisArg, argArray);
您當前的代碼有這方面的JavaScript錯誤:
test(rand_gyumolcs, link, callback){
callback();
};
這是不合法的JavaScript。我不知道你在做什麼,但是這看起來像函數聲明的一半,而函數調用的一半。如果你只是想調用的測試功能,你只需使用:
test(rand_gyumolcs, link, callback);
內部測試,如果你想在回調函數被調用的動畫完成後,那麼你就必須掛鉤完成然後調用回調函數。
通知我沒有調用回調函數,而是將它作爲函數引用傳遞給我的函數。然後我在最後或者你想要的地方調用它。傳遞引用時,函數作爲參數
myfunction(myCallbackFn);
注意有沒有括號函數名後:
@Keith ......你需要傳遞,你需要在聲明myfunction的運行實際的功能:即myfunction的(function(){alert「hello」;});不myfunction(回調); – bouk
這裏是用一個返回值也是以輸入參數的回調的例子:
function test2(arg1, arg2, callback) {
var result = callback(arg1, arg2);
alert('arg1=' + arg1 + ', arg2=' + arg2 + ', result=' + result);
}
test2(1, 2, function(a, b) { return a + b; });
似乎不適合我jfriend00 ...這可能是我的錯,但你可以看一下嗎?代碼有點亂,我知道,我不擅長jquery ... http://ridewithus.co.cc/test/ –
如果你能看到..我想要右側的水果移動,和測試功能做到這一點,但我也有一個回調功能,應該將它們移回原來的位置 –
請在您的原始問題中發佈相關代碼,或者給出代碼在您的頁面中的位置以及如何觸發它。你已經發布了一個包含五個嵌入腳本頁面的網頁,我不知道你在問什麼代碼。 – jfriend00