2011-11-25 70 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讓那些變量,你是指他們從你的插件代碼中以同樣的方式。

當然有其他類似的方法來設置它。