如何在另一个正在编写的jQuery插件中包含一个外部插件

我正在为我正在进行的项目构建一个自定义jQuery插件。 我想返回一个自定义的对象到另一个jQuery插件…而不是必须确保使用我的插件的每个页面也有这个其他插件,是否可以将它包含在实际的插件本身?

而不是在使用我的插件的每个页面上键入以下内容:

  

我想看看是否有一个选项可以允许:

 (function($) { $.include('url_to_plugin'); //code to implement my plugin })(jQuery); 

感谢Marko的建议……我可能做错了,因为我引用的插件没有被识别。 以下是我的代码:

 (function($) { var script = document.createElement('script'); script.type = 'text/javascript'; script.src = 'jquery.simplemodal.js'; //in same dir as my plugin //tried both document.body.appendChild(script); document.getElementsByTagName('head')[0].appendChild(script); $.fn.SUI_CheckProgress = function(options) { return this.each(function() { var obj = $(this); var nDiv = $('
'); nDiv.modal(); //error nDiv.modal() is not a function $(obj).append(nDiv); } }; });

我尝试在实际函数调用的内部和外部声明脚本(理想的是它在全局发生)。 如果我在我调用的页面中引用脚本,我validation代码是否正确执行,但是当我删除引用时它失败了。 有关以编程方式向页面添加脚本的任何其他信息将不胜感激。

修复:我的问题是我引用了与js插件相同的目录,但是当它被添加到页面时它位于该目录之外。

 script.src = 'jquery.simplemodal.js'; 

固定

 script.src = 'js/jquery.simplemodal.js'; 

当然 – 您可以创建一个新的脚本元素并将其附加到头部。

 var script = document.createElement('script'); script.src = 'url-to-plugin'; script.type = 'text/javascript'; document.getElementsByTagName('head')[0].appendChild(script); 

如果这不起作用,可以尝试使用此页面上的方法,使用setAttribute的方法略有不同。

您还可以使用jQuery中的getScript函数。

它可以与回调一起用于成功和/或失败,例如:

 $.getScript("somejs.js", function(data, textStatus, jqxhr) { console.log("callback"); } $.getScript("somejs.js") .done(function(script, textStatus) { console.log("done callback"); }) .fail(function(jqxhr, settings, exception) { console.log("fail callback"); }); 

或者没有分配回调,如:

 $.getScript("somejs.js");