使jquery函数中的变量可以从其他函数访问

时间:2011-11-25 00:19:07

标签: javascript jquery jquery-plugins

我有一个像这样的jquery函数:

(function($){
  $.fn.myjqfunction = function(cfg){

     var foo1, foo2; 

     return this.each...    

  };
})(jQuery);

如何让foo1和foo2可以从外部访问(来自其他类似的函数)?

这些变量将存储影响整个文档的一些事物的状态,我希望其他函数能够意识到这一点......

2 个答案:

答案 0 :(得分:3)

在函数之外声明它们,即global。

您可能希望将它们放在命名空间/对象/模块中以保证安全。哪种方法最好取决于您实际使用它们的方式。

例如,如果它们与特定的选择器相关,那么使用.data将它们直接附加到DOM元素可能是“最好的”,或者将它们保存在另一个jQuery函数中等等。

答案 1 :(得分:1)

设置你的功能:

(function($){
  function myjqfunction( cfg ) {
    return this.each( ... );
  }

  $.myjqfunction = {
    foo1: ... ,
    foo2: ... 
  };

  $.fn.myjqfunction = myjqfunction;
})(jQuery);

然后,从插件外部,代码可以引用$.myjqfunction.foo1来获取这些变量,并且您可以从插件代码中以相同的方式引用它们。

当然还有其他类似的方法来设置它。