2011-01-19 82 views
2

我問了一個問題,以前如何獲得另一個插件的變量,但我認爲這不是解決我的問題的正確方法。所以,我認爲最好的方法可能是共享相同的變量。 如:是否有可能使幾個jQuery插件共享相同的變量?

我有一個全局變量zIndex的,每一次我插件 [可能plugin1,plugin2 ...]創建從中得到的z-index值的新元素,加上一個並返回到zIndex,並且每次單擊該元素時,元素將獲得最新的zIndex值並加上一個並將其返回給zIndex

所以,每次元素每一個新創建元素可以得到最新zIndex的值,並單擊,它得到最新zIndex的更新zIndex的值。

問題是:是否有可能在插件之間共享這種全局變量,以及如何更新插件中的全局變量?

非常感謝!

回答

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)); 

由於功能plugin1plugin2具有相同的父範圍(或更確切地說,他們的激活對象),他們將共享對mySharedVariable的訪問。

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

+0

很好的回答,但你需要在工作加粗一些文字。 – Pointy 2011-01-19 15:03:42