使用jQuery()for $(document).ready()?

时间:2011-03-19 12:07:59

标签: javascript jquery

我个人更喜欢第一种语法

jQuery()

对于常用的使用是否安全:

$(document).ready()

对于其他选择器,我会使用$('#id').我只是要求第一个.ready

7 个答案:

答案 0 :(得分:4)

jQuery$可以互换(来自jQuery源代码):

window.jQuery = window.$ = jQuery

但要小心其他可能使用$的库。至于使用ready()

  

以下所有三种语法都是等效的:

     
      
  • (文档)$。就绪(处理程序)

  •   
  • $()。ready(处理程序)(不建议这样做)

  •   
  • $(处理程序)

  •   

来自ready() API。

答案 1 :(得分:3)

在加载jquery脚本之后立即添加以下代码:

(function($){
    $.fn.oldReady = $.fn.ready;
    $.fn.ready = function(fn){
        return $.fn.oldReady( function(){ try{ if(fn) fn.apply($,arguments); } catch(e){}} );
    }
})(jQuery);

答案 2 :(得分:2)

使用jQuery更“安全”,因为它不会与Mootools等其他框架发生冲突。如果您只使用jQuery,那么使用$

是没有害处的

答案 3 :(得分:2)

如果您只使用jQuery框架,那么我将使用$语法,特别是ready事件处理程序的简写版本更清晰。这只是个人偏好 - 它对我来说很明显它的作用,而不是那么冗长。您可以选择任何其他表格。

$(function() {

});

如果您有其他框架,那么您应该按照说明在noConflict模式下设置jQuery:http://api.jquery.com/jQuery.noConflict/

来自引用页面的代码示例:

<script type="text/javascript" src="other_lib.js"></script>
<script type="text/javascript" src="jquery.js"></script>
<script type="text/javascript">
  $.noConflict();
  jQuery(document).ready(function($) {  // or jQuery(function($) {
    // Code that uses jQuery's $ can follow here.
  });
  // Code that uses other library's $ can follow here.
</script>

如果您正在构建自己的插件,并且您不能确定jQuery是当时使用的唯一框架,那么我将在内部使用jQuery()或者至少在您的jQuery对象中明确地分配$范围,以便您知道您正在使用的是什么。

答案 4 :(得分:1)

两个名称$jQuery是同义词。 jQuery更明确;如果您使用其他框架,则可能会覆盖$

如果您将一个函数作为第一个参数传递给jQuery函数(或者显然是$),则会执行完全,就好像它一样打电话给jQuery(document).ready。是的,它完全一样。

事实上,所有这些在功能上都是等价的(前提是你没有其他任何东西与$混在一起):

$(document).ready(function() {});
jQuery(document).ready(function() {});
$(function() {});
jQuery(function() {});

完全是你使用的环境和风格问题。

我个人的偏好是使用显式$(document).ready调用(#1):很明显,这是在DOM准备就绪时运行的代码。您的偏好(#4)的主要优点是它清楚地表明代码是jQuery,这可能对将来阅读您的代码的人有用。

答案 5 :(得分:0)

jQuery documentation说他们是一样的。

答案 6 :(得分:0)

你的问题真的是二合一的。有几种方法可以联系ready事件,但这四种变体与问题相关:

jQuery(function(){ ... });

jQuery(document).ready(function(){ ... });

$(function(){ ... });

$(document).ready(function(){ ... });

$标识符是jQuery标识符的别名。使用noConflict方法,如果它与任何其他库冲突,只能使用jQuery标识符(或者甚至释放所有标识符并指定您自己的标识符),则可以释放$别名。

使用jQuery对象本身来挂接ready事件是一种常用的简写,但仅仅通过查看代码它的作用就不那么清楚了。