2011-02-17 57 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