2011-11-25 165 views
1

我有一个jQuery函数是这样的:建立从jQuery函数变量可访问其他功能

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

    var foo1, foo2; 

    return this.each...  

    }; 
})(jQuery); 

我怎样才能使foo1和foo2的是从外部接近(从另一个这样的功能)?

这些变量将存储的一些事情,影响整个文档的状态,我想其他功能意识到这一点......

+0

如果每个函数都需要知道它们,你应该全局声明它们 – Cyclonecode

回答

3

声明它们的功能外,即全球性的。

您可能希望将它们放在名称空间/对象/模块中以保证安全。哪种方法最好取决于你实际上在做什么。

例如,如果他们涉及具体的选择,它可能是“最好的”他们直接使用.data附加到DOM元素,或让他们在另一个内部的jQuery功能等

+0

我可以使myjqfunction成为命名空间吗?并访问他们像myjqfunction.foo1? – Alex

+0

我想是的,试试this.foo1; this.foo2; –

1

设置您的像这样的功能:

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

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

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

然后从你的插件外,代码可以参考$.myjqfunction.foo1让那些变量,你是指他们从你的插件代码中以同样的方式。

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