在Javascript中使用动态参数调用动态jQuery插件

时间:2011-02-17 17:36:40

标签: javascript jquery

假设我们需要动态构建插件调用,例如

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

将是这样的:

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

使用:

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

有人能指出正确的方法吗?

1 个答案:

答案 0 :(得分:4)

不确定我是否真的理解这个问题,但如果您只是希望您的第一个和第三个代码段具有相同的效果,请使用apply

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

或者,如果你真的想把这个函数作为一个字符串而不是一个函数对象传递(没多少点恕我直言):

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