“jQuery(...)”而不是“$(...)”

时间:2013-06-02 15:10:50

标签: javascript jquery

jQuery("...")代替$("...")是不错的做法?

我听说如果他们使用$,那么避免与其他图书馆的未来冲突可能会有用,但这是否真的存在?假设我真的不知道将来会使用哪些其他库,那么我应该避免在脚本中编写$("...")吗?还有其他知名图书馆依赖$吗?

此外,我很想知道这个主题是否还有其他问题。

6 个答案:

答案 0 :(得分:5)

使用$ for jQuery是完全安全的,它是jQuery的习惯用法,至少在你自己控制的页面上。

如果你确实选择在小部件中使用jQuery,你可以采用一种方式来构建它,以防止它发生冲突。

一般来说,jQuery绑定到$和jQuery,所以单独使用jQuery并不能保证你的安全..

如果你担心冲突,jQuery会公开$ .noConflit(); http://api.jquery.com/jQuery.noConflict/

放弃对$的控制,你可以将jQuery存储在你选择的变量中(或者使用jQuery)。

以下是基于Wikipedia page和此stackoverflow answer使用$符号的库:

  

扫描此页面时,唯一想到的是:

     
      
  1. jQuery - 提供jQuery.noConflict()来释放$
  2.   
  3. 原型
  4.   
  5. MooTools的
  6.   

然而,jQuery以约90%的市场份额杀死它。

  1. http://www.theregister.co.uk/2012/08/14/jquery_used_by_half_of_all_websites/
  2. https://stackoverflow.com/questions/176324/why-does-everyone-like-jquery-more-than-prototype-script-aculo-us-or-mootools-or

答案 1 :(得分:5)

您可以使用销售调用函数包装代码并使用您想要的名称

(function (JQUERY, otherLIB) {
  // ...
}(jQuery, $))

答案 2 :(得分:2)

$现在经常使用,如果您不使用它,可能会被其他库事件使用。您可以使用jQuery.noConflict

  

许多JavaScript库只使用$作为函数或变量名   就像jQuery一样。在jQuery的例子中,$只是jQuery的别名,所以   无需使用$即可使用所有功能。如果你需要使用   与jQuery一起使用的另一个JavaScript库,返回$ back的控件   通过调用$ .noConflict()到另一个库。旧的参考文献   在jQuery初始化期间保存$; noConflict()只是简单地恢复   他们,参考。

答案 3 :(得分:2)

$只是一个速记命名空间,因为jQuery众所周知,许多javascript框架倾向于将$视为保留命名空间而不愿意使用它。这就是说任何人都可以很容易地将任何代码命名为window.$

如果您意识到$命名空间的确切含义,则可以删除该命名空间的jQuerys绑定,并在全局范围之外自行重新绑定。

jQuery.noConflict();

(function($) {

    // your code that can use $ as jQuery namespace

})(jQuery);

答案 4 :(得分:2)

如果您正在使用.ready()函数(或快捷方式版本)来包装代码,那么内置的功能可以让您安全地访问jQuery库。这是通过在您提供的回调中定义函数参数。

jQuery(document).ready(function($) { 
    /* in here, $ is safe */ 
}); 

jQuery(function($) { 
    /* in here, $ is safe */ 
});

由于jQuery将自身作为回调的第一个参数传递,因此您可以为其指定任何名称,包括$。因为它形成一个局部参数,所以它不会受到影响,也不会影响全局空间中的相同名称。

这样就不需要.noConflict()或手动IIFE方法。你需要的一切都已经适合你了。

答案 5 :(得分:1)

其他一些图书馆也使用美元符号。 Mootools for example也可以使用它。但总是有可能使用jQuerys noConflict模式,因此您可以非常安全地在代码中使用美元符号。