有可能制作几个jquery插件来共享同一个变量吗?

时间:2011-01-19 14:54:45

标签: jquery plugins

我之前问过如何获取另一个插件变量的问题,但我认为这不是解决问题的正确方法。所以,我认为最好的方法可能是共享同一个变量。 E.g:

我有一个全局变量zIndex ,每次我的插件 [可能是plugin1,plugin2 ...]创建一个新元素时,它会获得 z来自它的-index 值加上一个并返回 zIndex ,每次点击该元素时,该元素都会获得最新的 zIndex 值并加上一,并将其​​返回 zIndex

因此,每个新创建的元素都可以获得最新zIndex值,每次元素 点击 >,它获得最新的zIndex 更新zIndex值。

问题是:是否可以在插件之间共享这种全局变量?如何更新插件中的全局变量?

非常感谢!!

1 个答案:

答案 0 :(得分:1)

如果您完全控制插件,可以使用简单的关闭来共享变量:

(function($) {
     var mySharedVariable = "shared";

     $.extend($.fn, {
         plugin1:  function() {
            return this.each(function(i,e) {
                mySharedVariable = "plugin1";
            });
         },
         plugin2:  function() {
            return this.each(function(i,e) {
                mySharedVariable = "plugin2";
            });
         }
     });
}(jQuery));

由于 plugin1 plugin2 功能具有相同的父范围(或者更确切地说,是其激活对象),因此它们将共享访问mySharedVariable

演示http://www.jsfiddle.net/EMpQN/