'$(“#foo”)'和'jQuery(“#foo”)之间的区别'

时间:2012-07-27 10:58:18

标签: jquery

  

可能重复:
  jQuery selecter whats difference between jQuery(“element”) and $(“element”)?

有点好奇..

为什么有时我会将其视为$("#SomeElementId"),有时则视为jQuery("#SomeElementId")?有什么确切的区别?

2 个答案:

答案 0 :(得分:5)

$jQuery命名空间的别名。输入速度更快。当可能与其他使用$的库相冲突时,通常会避免这种情况。

jQuery总是声明jQuery,但只会声明$,除非调用jQuery.noConflict()

无论哪种方式,一个常见的模式是通过一个立即执行的函数将$作为闭包中的局部变量引用:

(function($) {
    //all your code here, which can reference $
})(jQuery);

答案 1 :(得分:3)

understanding $ vs. jQuery in iife instead of $

注意同一个问题被问到很多时候人:)的措辞不同但所有意思都一样,所以我认为这个问题很快就会关闭。

许多JavaScript库使用$作为函数或变量名,就像jQuery一样。在jQuery的情况下,$只是jQuery的别名,因此所有功能都可以在不使用$的情况下使用。如果我们需要在jQuery旁边使用另一个JavaScript库,我们可以通过调用$ .noConflict()将$的控制权返回给另一个库:http://api.jquery.com/jQuery.noConflict/

In" no-confict"模式,$快捷方式不可用,使用更长的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 ready事件),那么您可以使用此包装方法:

(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

如果你热衷于:

What does $ mean in jQuery?

这应该有助于解渴[{1}}可能希望这会有所帮助!