2012-08-29 43 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'); 

我们可以在它作为全局变量的任何函数中声明它的变量。