【问题标题】:How to create global namespaces or variables for HTML attributes/selectors?如何为 HTML 属性/选择器创建全局命名空间或变量?
【发布时间】:2012-08-29 17:43:09
【问题描述】:

我正在尝试将选择器设置为全局变量或命名空间。我不确定这是否是正确的术语,或者我是否正确地处理了这个问题。

我希望能够执行以下操作...

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


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

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

这是我想如何使用它们的一个非常基本的示例。基本上最终目标是设置一组可以通过多种功能轻松使用的全局选择器。我不知道这是正确的还是理想的,这就是我问的原因。提前致谢。

【问题讨论】:

标签: javascript jquery


【解决方案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 更适合您尝试扩展 jQuery 并添加您自己的某种实用功能。

【讨论】:

  • 我会写成 _div1.hide();或 $(_div1).hide(); ?
  • 出于好奇。变量名前的下划线是什么原因?
  • 你只需要_div1,因为它已经是一个jQuery对象了。刚刚编辑了答案以解释为什么我喜欢添加下划线。大多数人在变量后使用 $。
【解决方案2】:

类似于 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();
});

【讨论】:

    【解决方案3】:

    你可以在没有“var”关键字的情况下声明全局变量。

    div = $('#myFirstDiv');
    

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

    【讨论】:

      猜你喜欢
      • 2015-04-22
      • 2012-03-13
      • 2015-02-07
      • 2011-03-25
      • 2011-08-31
      • 2017-01-04
      • 1970-01-01
      • 2014-02-17
      • 2021-04-19
      相关资源
      最近更新 更多