2011-02-17 75 views
1

假設我們需要動態地構建插件調用如調用動態jQuery插件動態參數在Javascript

$('#myDiv').myPlugin({a:'a',b:'b'}); 

將是這樣的:

function funcCallBuilder(selector, func, opts){ 
    //dynamically construct plugin call here 
} 

使用:

funcCallBuilder('#myDiv', 'myPlugin', {a:'a',b:'b'}); 

有人能指出正確的做法嗎?

+0

問得好+ 1個 – 2011-05-16 21:52:08

回答

4

不知道如果我真的能理解的問題,但如果你只是想你的第一個和第三個代碼段有同樣的效果,只要使用apply

function funcCallBuilder(selector, func, opts){ 
    func.apply($(selector), [opts]); 
} 

或者,如果你真的想通過功能作爲一個字符串,而不是一個函數對象(沒有多大意義恕我直言):

function funcCallBuilder(selector, func, opts){ 
    $.fn[func].apply($(selector), [opts]); 
} 
+0

是的,。適用()應該爲你做。雖然,我認爲它應該是$ .fn [func] .apply($(selector),opts); – KOGI 2011-02-17 18:17:24