【问题标题】:Difference between '$("#foo")' and 'jQuery("#foo")' [duplicate]'$("#foo")' 和 'jQuery("#foo")' 之间的区别 [重复]
【发布时间】:2012-07-26 01:12:30
【问题描述】:

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

有点好奇..

为什么有时我看到它写成 $("#SomeElementId") 有时写成 jQuery("#SomeElementId") ?到底有什么区别?

【问题讨论】:

    标签: jquery


    【解决方案1】:

    $jQuery 命名空间的别名。只是打字更快。当可能与同样使用 $ 的其他库发生冲突时,通常会避免这种情况。

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

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

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

    【讨论】:

      【解决方案2】:

      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

      如果您愿意,还可以:

      What does $ mean in jQuery?

      这应该有助于解渴:) 可能希望这会有所帮助!

      【讨论】:

        【解决方案3】:

        它们是一样的。默认情况下,jQuery 将自己绑定到两个全局名称:jQuery$。后者更短但更模糊,因为其他框架也是如此。

        查看相关文档:http://api.jquery.com/jQuery.noConflict/

        【讨论】:

          【解决方案4】:

          $jquery 的快捷方式 - 许多 javascript 库允许您使用 $,因此如果您在代码中使用多个库,通常使用 jquery 更安全 - 如果您只使用jQuery,那么使用$应该没有问题

          【讨论】:

            【解决方案5】:

            没有,$只是一个别名,你也可以通过jQuery.noConflict()函数使用不同的别名

            【讨论】:

            • 您可以通过创建别名来使用不同的别名。 var a = jQuery; var b = jQuery; 你现在有 4 种方式来引用它。 jQuery.noConflict 用于在某些使用 $ 的库之后包含 jQuery,而不是反过来让其他库覆盖它。
            • 你可以,虽然我相信 noConflict 可能会做得更多(虽然我可能错了)。当然,我一直被建议使用 noconflict 而不是仅仅分配一个新变量。啊,根据您的编辑,是的,通常当我使用它们的库时,我想使用 noConflict 的任何一种方式都更安全?
            • $.noConflict 中的发布只是当您只想为 jQuery 起别名时不希望出现的副作用。它只是return jQuery,你可以自己写var a = jQuery而不是var a = jQuery.noConflict()
            • 很公平,感谢您的信息:)
            猜你喜欢
            • 1970-01-01
            • 1970-01-01
            • 2011-05-17
            • 2016-12-01
            • 1970-01-01
            • 1970-01-01
            • 2017-07-04
            • 1970-01-01
            • 2016-09-09
            相关资源
            最近更新 更多