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

编写jQuery("...")而不是$("...")是一个好习惯吗?

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

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

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

如果您确实选择在窗口小部件中使用jQuery,则可以以防止冲突的方式对其进行构造。

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

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

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

以下是基于Wikipedia页面使用$ sign的库和此stackoverflow答案 :

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

  1. jQuery – 提供jQuery.noConflict()来释放$
  2. 原型
  3. MooTools的

然而,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

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

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

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

许多JavaScript库使用$作为函数或变量名,就像jQuery一样。 在jQuery的情况下,$只是jQuery的别名,因此所有function都可以在不使用$的情况下使用。 如果你需要在jQuery旁边使用另一个JavaScript库,那么通过调用$ .noConflict()将$的控制权返回给另一个库。 在jQuery初始化期间保存了$的旧引用; noConflict()只是简单地恢复它们,参考。

$只是一个简写命名空间,因为jQuery非常有名,许多javascript框架倾向于将$视为保留命名空间而不愿意使用它。 这就是说任何人都很容易将任何代码命名为window.$

如果你清楚地知道$ namespace所引用的内容,你可以删除对该命名空间的jQuerys绑定,并在全局范围之外自行重新绑定它。

 jQuery.noConflict(); (function($) { // your code that can use $ as jQuery namespace })(jQuery); 

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

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

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

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

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