2012-08-29 44 views
1

我想設置選擇器作爲全局變量或命名空間..我不太確定這是否正確的術語,或者如果我正在接近這一點。如何爲HTML屬性/選擇器創建全局名稱空間或變量?

我希望能夠做到像下面...

$.namespaceA = $('#myFirstDiv'); 
$.namespaceB = $('#mySecondDiv'); 


function myFirstFunction(){ 
    $.namespaceA.hide(); 
    $.namespaceB.css(); 
} 

function mySecondFunction(){ 
    $.namespaceB.show(); 
} 

這是我要如何使用它們一個非常簡單的例子。基本上最終目標是設置一組可以通過多種功能輕鬆使用的全局選擇器。我不知道這是否正確,或者如果這是理想的,那就是我問的原因。提前致謝。

+0

你可以參考:http://stackoverflow.com/questions/527089/is-it-possible-to-create-a-namespace-in-jquery – Ankur

+0

我已經看到了這一點,但並不真正瞭解它。也可能命名空間不是最好的。也許我真的需要的是變量.. –

回答

1

爲什麼你不簡單地做全球變種? (他們可以容納jQuery的包裹套沒有問題)

// When creating variables holding wrapped sets it is common naming to have 
// a $ following it (I find this rather annoying, since you can't easily double click 
// on the var, in order to copy/paste it etc, so I always use _ underscore (personal preference) 

var _div1 = $('#myFirstDiv'); // you will see a lot of people do div1$ 
var _div2 = $('#mySecondDiv'); // or div2$ (signifying the jQuery wrapped set) 

_div2.hide(); 

//These could be used within multiple functions etc... No need for namespaces here! 

function Whatever() { 
    console.log(_div1); 
    _div1.css('background', '#000'); 
} 

$('#linkTrigger').on('click', function() { 
    Whatever(); 
    _div2.fadeIn(); 
}); 

jsFiddle DEMO

$.nameSpaceHere是更多的,如果你正在嘗試-extend- jQuery和添加某種你自己的效用函數。

+0

我會給這個鏡頭... –

+0

我會寫它像_div1.hide();或$(_ div1).hide(); ? –

+0

沒關係....上面的答案回答了我的評論 –

1

類似mcpDESIGNS:

http://jsfiddle.net/nqrvf/

<div id="myFirstDiv">first</div> 
<div id="mySecondDiv">second</div> 

var namespaceA = $('#myFirstDiv'); 
var namespaceB = $('#mySecondDiv'); 

$("#myFirstDiv").click(function() { 
    namespaceA.hide(); 
}); 

$("#mySecondDiv").click(function() { 
    namespaceA.show(); 
}); 
1

你可以聲明不 「VAR」 關鍵字的全局變量。

div = $('#myFirstDiv'); 

我們可以在它作爲全局變量的任何函數中聲明它的變量。