【问题标题】:Extend a jQuery plugin扩展一个 jQuery 插件
【发布时间】:2010-11-12 01:35:05
【问题描述】:

假设我有一个像 $.abc = function() {} 这样的 jQuery 插件。现在我想提供一个额外的模块,它使用与 $.abc 相同的范围并扩展其功能。例如在我的 abc 插件中,我将检查变量 mod1 = true;如果是真的,那么我会自动调用mod1的thoso函数。

我的问题是如何编写 mod1 以便它可以与我的基本插件共享相同的命名空间,并且我可以从我的插件中调用它,例如mod1.getFiles();

感谢您的宝贵时间。抱歉,如果这不是很清楚。如果您有任何问题,我会再次解释。

更新:如何调用插件栏的功能测试?

$.fn.pluginFoo = function() {
    ...
     CALL FUNCTION TEST OF PLUGINBAR
    ...
};

$.fn.pluginBar = function() {
    ...
    function test() {
        alert('this is a test'); 
    }
    ...
};

【问题讨论】:

    标签: jquery


    【解决方案1】:

    无需创建共享数据对象。您可以使用简单的 return 语句将一个插件的某些功能公开给其他插件。

    $.fn.pluginFoo = function () {
         // here you can access public "members" of pluginBar
         $.fn.pluginBar.fn3();
         $.fn.pluginBar.fn4();
    }
    
    
    $.fn.pluginBar = function () {
        // private "members" (only this plugin can access them)
        var fn1 = function () { ... }
        var fn2 = function () { ... }
    
        // public "members" (other plugin can access that as well)
        // fn3 is defined in the return, fn4 allows to access private function fn1
        return {
            fn3: function () { ... },
            fn4: fn1
        };
    }
    

    【讨论】:

      【解决方案2】:

      您希望两个插件访问一组共享的数据/函数,您可以这样做:

      var myPluginData = {
          flag: true,
          alertNothing: function() {
              alert('I do Nothing');
          }
      };
      
      $.fn.pluginFoo = function() {
          ...
          myPluginData.flag = false;
          myPluginData.alertNothing();
          ...
      };
      
      $.fn.pluginBar = function() {
          ...
          myPluginData.alertNothing();
          myPluginData.flag = true;
          ...
      };
      

      您实际上不需要为它定义一个对象,但它确实让事情变得更清晰。

      【讨论】:

      • 我想从函数pluginFoo调用一个pluginBar函数。我该怎么做?
      猜你喜欢
      • 1970-01-01
      • 2010-12-25
      • 1970-01-01
      • 2011-08-14
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2011-09-07
      相关资源
      最近更新 更多