2011-08-22 55 views
0

我正在寫一個jQuery插件,並試圖設置一個需要幾個參數的回調函數。 jQuery如何確定將哪些參數發送到回調函數?創建jQuery回調函數時指定參數

在插件:

if (callback) { 
    callback.call(var1, var2, var3); 
} 

書面回調:

$("#div").myplugin({callback: myfunction}); 
myfunction(biz,bar,bim) { 
    alert("I love " + biz + " and " + bar + " and " + bim); 
} 

BIZ設置爲VAR2,酒吧設置爲VAR3,和BIM是不確定的。

回答

4

call函數的第一個參數是特殊的:

fun.call(thisArg[, arg1[, arg2[, ...]]]) 

其中thisArg

提供用於調用funthis的值。

callback.call(this, var1, var2, var3); 

,或者更簡單,不要用call在所有如果你不需要this

https://developer.mozilla.org/en/JavaScript/Reference/Global_Objects/Function/call

所以,如果你通過了thisArg值時,它會工作在回調中:

callback(var1, var2, var3); 
1

我相信你會找到答案在這post

基本上有幾種實現你想要的目標的方法。如果你向下查看最後一個例子的帖子,你可以使用args.push(arguments[i]);這一行,它可以使用apply調用的唯一兩個參數傳遞幾個參數給函數。

如上所述,調用方法類似,必須將所有函數參數放在call方法的第二個參數中。

+0

感謝您的鏈接,該帖子太棒了! – stinkycheeseman