"jQuery(...)"而不是"$(...)"

Mah*_*hdi 6 javascript jquery

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

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

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

Dor*_*don 5

使用$ 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. /sf/ask/12342711/


Vit*_*huk 5

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

(function (JQUERY, otherLIB) {
  // ...
}(jQuery, $))
Run Code Online (Sandbox Code Playgroud)


小智 5

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

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

jQuery(function($) { 
    /* in here, $ is safe */ 
});
Run Code Online (Sandbox Code Playgroud)

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

这样就不需要.noConflict()手动 IIFE 方法。您需要的一切都已经为您准备好了。