javascript - 在函数参数中传递插件名称 [jQuery]

标签 javascript jquery

如何在参数中传递插件名称?

我做了如下操作,但它不正确,因为这里插件名称作为字符串传递,我无法直接启动它。请问有什么帮助吗?

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', {});

最佳答案

访问 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]()用于调用插件本身。

关于javascript - 在函数参数中传递插件名称 [jQuery],我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/29603033/

相关文章:

javascript - Slickgrid onChange 不保留单元格 CSS 样式

javascript - 将数组传递给 Javascript onClick 函数,同时将链接添加到字符串中?

javascript - jquery 打开包含 li 类 =“active” 的 div

javascript - 在 Javascript 中重置 FilePond 输入

javascript - 当类应用于 div 时添加可见性 0

javascript - 使用 HTML 和 JS 运行外部应用程序(vlc 播放器、文本文档、.exe)

jquery - fadeIn() 先显示后淡出

jquery - 使用CSS在悬停时显示图像

javascript - 如何使可调整大小的框从左到下以及从右到上

javascript - 带有选择器作为参数的 jQuery 函数