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