如何构建依赖于其他插件的jQuery插件,而不强迫用户链接每个插件?

时间:2011-03-09 23:23:41

标签: jquery jquery-plugins

我正在创建一个利用几个较小插件的jQuery插件。我不想强迫用户为每个插件添加单独的脚本标记。我可以将它们全部放在同一个文件中,但似乎应该有更好的方法。

我能想出的唯一想法是将每个插件分开,但是在一个公共文件夹中。在主插件中,我会做类似以下的事情:

if(!$.isFunction(pluginName){
     //load the plugin from common folder
}

这种方法有什么本质上的错误吗?

有没有人知道更好的方法?

1 个答案:

答案 0 :(得分:0)

您可以尝试使用src创建标记并将其附加到文档。这样你就可以“导入”其他js。

这样的事情:

function importJs(src) {
    var script = document.createElement("script"); //assuming that there is no lib yet, we do it manually
    script.type = "text/javascript";
    script.src = src;
    document.body.appendChild(script);
}

//and then we can do the imports
importJs("jquery.js");
importJs("somePath/someOtherLib.js");
//so on

这样,你可以只有一个文件js“import”并集中你想要使用的任何其他js。

例如,对于动态css导入,您可以执行几乎相同的操作,但是您使用标记更改脚本标记,而不是使用src属性作为使用href属性的路径,但您仍需要设置类型属性,但对于css mime:“text / css”。