“jQuery(…)”而不是“$(…)”
编写jQuery("...")
而不是$("...")
是一个好习惯吗?
我听说如果他们使用$
也可以避免与其他图书馆的未来冲突,但这是否真的存在? 假设我真的不知道将来会使用哪些其他库,那么我应该避免在脚本中编写$("...")
吗? 是否还有其他知名图书馆依赖于$
?
此外,我很想知道这个主题是否还有其他问题。
使用$ for jQuery是完全安全的,它是jQuery的习惯用法,至少在你自己控制的页面上。
如果您确实选择在窗口小部件中使用jQuery,则可以以防止冲突的方式对其进行构造。
一般来说,jQuery绑定到$和jQuery,所以单独使用jQuery并不能保证你的安全。
如果你担心冲突,jQuery会公开$ .noConflit(); http://api.jquery.com/jQuery.noConflict/
它放弃了$的控制,你可以将jQuery存储在你选择的变量中(或者使用jQuery)。
以下是基于Wikipedia页面使用$ sign的库和此stackoverflow答案 :
扫描此页面时,唯一想到的是:
- jQuery – 提供jQuery.noConflict()来释放$
- 原型
- MooTools的
然而,jQuery以约90%的市场份额杀死它。
您可以使用销售调用函数包装代码并使用您想要的名称
(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模式,因此您可以非常安全地在代码中使用美元符号。