当前位置:  开发笔记 > 前端 > 正文

jQuery ready()的四种变体 - 有什么区别?

如何解决《jQueryready()的四种变体-有什么区别?》经验,为你挑选了2个好方法。

我已经看到了四种不同的方法来告诉jQuery在文档准备好时执行一个函数.这些都是等价的吗?

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

$().ready(function () {
  alert('$().ready()');
}); 

$(function () {
  alert('$()');
});     

jQuery(function ($) {
  alert('jQuery()');
}); 

geowa4.. 13

没有区别.

$是一样的jQuery.如果您查看未经授权的源,您将看到var $ = jQuery = ...或出现这种情况.

jQuery函数检查它的参数类型,如果它是一个函数,它将其视为相同$(document).ready(...)

jQuery没有参数的调用默认使用document.所以$()并且$(document)完全相同.在Firebug中尝试一下.



1> geowa4..:

没有区别.

$是一样的jQuery.如果您查看未经授权的源,您将看到var $ = jQuery = ...或出现这种情况.

jQuery函数检查它的参数类型,如果它是一个函数,它将其视为相同$(document).ready(...)

jQuery没有参数的调用默认使用document.所以$()并且$(document)完全相同.在Firebug中尝试一下.


这并不能解释第二个问题
它是默认使用文档还是由于jQuery在传递没有args后通过链接返回?

2> Dave Archer..:

re:Geroge IV关于$()== $(文档)正确的评论.从未公开的源(init是内部调用的):

init: function( selector, context ) {
    // Make sure that a selection was provided
    selector = selector || document;

同样来自源代码,以备份之前的对话:

// HANDLE: $(function)
    // Shortcut for document ready
    } else if ( jQuery.isFunction( selector ) )
        return jQuery( document ).ready( selector );

这应该是社区维基.我一直对jquery的内部工作感兴趣,现在我有借口开始寻找:-)

推荐阅读
周扒pi
这个屌丝很懒,什么也没留下!
DevBox开发工具箱 | 专业的在线开发工具网站    京公网安备 11010802040832号  |  京ICP备19059560号-6
Copyright © 1998 - 2020 DevBox.CN. All Rights Reserved devBox.cn 开发工具箱 版权所有