代码之家  ›  专栏  ›  技术社区  ›  jon3laze

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

  •  6
  • jon3laze  · 技术社区  · 15 年前

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

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

    <script type="text/javascript" src="url_to_my_plugin" />
    <script type="text/javascript" src="url_to_plugin" />
    

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

    谢谢你的建议马尔科。。。我可能做错了什么,因为我引用的插件没有被识别。下面是我的代码:

    (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 = $('<div>');
                   nDiv.modal(); //error nDiv.modal() is not a function
                   $(obj).append(nDiv);
              }
         };
    });
    

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

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

    固定的

    script.src = 'js/jquery.simplemodal.js';
    
    2 回复  |  直到 15 年前
        1
  •  2
  •   Marko    15 年前

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

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

    如果这不起作用,也许可以试试这个方法 this page ,使用

        2
  •  3
  •   jmoreira    13 年前

    你也可以使用 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");