在函数参数[jQuery]中传递pluginname

时间:2015-04-13 10:22:54

标签: javascript jquery

如何在params中传递插件名称?

我做了如下,但它不正确,因为这里插件名称作为字符串传递,我不能直接触发它。有什么帮助吗?

function doSomething(pluginName, elements, prop) {
    elements.forEach(function(elt) {
        if( pluginName && $(elt).length > 0 ) {
            $(elt).pluginName( prop );
        } else {
            console.log( 'Plugin is not yet loaded' );
        }
    });
}    
doSomething( 'autocomplete', '.cities', {});

1 个答案:

答案 0 :(得分:0)

访问jQuery对象的方法时,可以使用括号表示法。因此,您可以为其提供一个字符串,如下所示:

elements.forEach(function(elt) {
    if(jQuery()[pluginName] && $(elt).length > 0 ) {
        $(elt)[pluginName](prop);
    } else {
        console.log( 'Plugin is not yet loaded' );
    }
});

请注意,jQuery()[pluginName]用于检查插件是否已加载,$(elt)[pluginName]()用于调用插件本身。