【发布时间】:2012-07-26 01:12:30
【问题描述】:
可能重复:
jQuery selecter whats difference between jQuery(“element”) and $(“element”)?
有点好奇..
为什么有时我看到它写成 $("#SomeElementId") 有时写成 jQuery("#SomeElementId") ?到底有什么区别?
【问题讨论】:
标签: jquery
可能重复:
jQuery selecter whats difference between jQuery(“element”) and $(“element”)?
有点好奇..
为什么有时我看到它写成 $("#SomeElementId") 有时写成 jQuery("#SomeElementId") ?到底有什么区别?
【问题讨论】:
标签: jquery
$ 是jQuery 命名空间的别名。只是打字更快。当可能与同样使用 $ 的其他库发生冲突时,通常会避免这种情况。
jQuery 总是声明jQuery,但只会声明$,除非调用jQuery.noConflict()。
无论哪种方式,一个常见的模式是通过立即执行的函数将$ 引用为闭包中的局部变量:
(function($) {
//all your code here, which can reference $
})(jQuery);
【讨论】:
understanding $ vs. jQuery in iife instead of $
注意同样的问题被问了很多次 man :) 不同的措辞但都意味着同样的事情,所以我认为这个问题很快就会结束。
许多 JavaScript 库使用 $ 作为函数或变量名,就像 jQuery 一样。在 jQuery 的例子中,$ 只是 jQuery 的别名,所以所有功能都可以在不使用 $ 的情况下使用。如果我们需要在 jQuery 旁边使用另一个 JavaScript 库,我们可以通过调用 $.noConflict() 将 $ 的控制权返回给另一个库:http://api.jquery.com/jQuery.noConflict/
在“无冲突”模式下,$ 快捷方式不可用,使用较长的 jQuery。例如:
$(document).ready(function(){
$(#somefunction) ...
});
变成:
jQuery(document).ready(function(){
jQuery(#somefunction) ...
});
为了使用 $ 的默认 jQuery 快捷方式,您可以在代码周围使用以下包装器:
jQuery(document).ready(function($) {
// $() will work as an alias for jQuery() inside of this function
});
该包装器将导致您的代码在页面完成加载时执行,并且 $ 将用于调用 jQuery。如果出于某种原因,您希望您的代码立即执行(而不是等待 DOM 就绪事件),那么您可以改用这个包装方法:
(function($) {
// $() will work as an alias for jQuery() inside of this function
})(jQuery);
好读: http://codex.wordpress.org/Function_Reference/wp_enqueue_script#jQuery_noConflict_wrappers
如果您愿意,还可以:
这应该有助于解渴:) 可能希望这会有所帮助!
【讨论】:
它们是一样的。默认情况下,jQuery 将自己绑定到两个全局名称:jQuery 和 $。后者更短但更模糊,因为其他框架也是如此。
【讨论】:
$ 是 jquery 的快捷方式 - 许多 javascript 库允许您使用 $,因此如果您在代码中使用多个库,通常使用 jquery 更安全 - 如果您只使用jQuery,那么使用$应该没有问题
【讨论】:
没有,$只是一个别名,你也可以通过jQuery.noConflict()函数使用不同的别名
【讨论】:
var a = jQuery; var b = jQuery; 你现在有 4 种方式来引用它。 jQuery.noConflict 用于在某些使用 $ 的库之后包含 jQuery,而不是反过来让其他库覆盖它。
$ 在 .noConflict 中的发布只是当您只想为 jQuery 起别名时不希望出现的副作用。它只是return jQuery,你可以自己写var a = jQuery而不是var a = jQuery.noConflict()。