【问题标题】:jQuery(selector) or $(selector), which one?jQuery(selector) 或 $(selector),哪一个?
【发布时间】:2010-03-20 13:56:08
【问题描述】:

使用jQuery() 的更好方法是什么?我听说jQuery(element) 不会破坏代码,例如WordPress。但是$ 写起来更容易、更快捷。

你更喜欢哪一个,为什么?

【问题讨论】:

    标签: jquery jquery-selectors css-selectors


    【解决方案1】:

    我的优先顺序是$(),然后是var $jq = jQuery.noConflict(); $jq(),最后是jQuery()。您还可以通过以下方式限制$ 函数的范围:

    ;(function($){
        ...in here $ means jQuery...
    })(jQuery);
    

    即创建一个参数为$ 的匿名函数,传入jQuery 作为参数,并且在函数内参数范围覆盖任何全局范围的$ 函数。后者在自己创建插件时最有用。

    【讨论】:

      【解决方案2】:

      这取决于你需要做什么,它们都是相同的。

      如果您使用另一个库,例如 Prototype(也使用 $),则需要使用 jQuery,但在大多数情况下没有冲突,只需使用 $()

      【讨论】:

      • 感谢您的两个回答,不过这个速度要快一些:-D
      【解决方案3】:

      $ 简写也被其他框架(如原型)使用,所以如果您不使用它,请随意使用 $ 作为简写。据我所知,这两者只是彼此的别名。

      【讨论】:

        【解决方案4】:

        对于您自己使用$ 仅调用jQuery 的扩展,您还可以使用像这样包装代码的标准技巧

        (function($) {
           ... your other code using $(selector).moo here ....
        })(jQuery);
        

        【讨论】:

          【解决方案5】:

          我的大部分 jQuery 代码分为两类:插件和页面加载内容。

          对于插件,这是最简单的方法:

          (function($) {
              $.fn.myplugin = function() { ... };
          })(jQuery);
          

          对于页面加载内容,这是大部分内容,只需执行以下操作:

          jQuery(function($) {
              $('a[href$="foo"]').click( ... );
          });
          

          这样,是否包含额外的库(例如:Prototype)都没有关系,您仍然可以使用 $ 而不是每次都输入“jQuery”。

          【讨论】:

            【解决方案6】:

            您可以使用var jq=jQuery.noConflict(); 来处理名称冲突。

            例如:

            var $jq=jQuery.noConflict();
            $jq("p").hide();
            

            【讨论】:

              猜你喜欢
              • 2012-08-25
              • 2016-02-18
              • 2016-02-21
              • 2017-06-09
              • 2011-08-30
              • 1970-01-01
              • 2011-09-23
              • 1970-01-01
              • 2012-02-02
              相关资源
              最近更新 更多