jQuery $(function(){})和$(document).ready一样吗?

要在字段上有一个工作日期选择器,我必须将此脚本放在我的元素中

$( function() { $( "#date_datepicker" ).datepicker( { dateFormat: "yy-mm-dd" } ); }); 

删除$( function() {使得datepicker不起作用。

那么它是否意味着$( function() {$(document).ready

我正在尝试优化我的JavaScript代码,因此知道这可能会有所帮助。

请参阅http://api.jquery.com/ready/中的摘录

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

  • $(document).ready(handler)
  • $().ready(handler) (不建议这样做)
  • $(handler)

是的,它是同一件事的速记版本。 当函数作为参数传递时, $函数调用$(document).ready函数。

如果你试图在速度方面进行优化 – 两者都会表现得非常相似,但是如果执行很多次,那么更长的$(document).ready(handler)会更快。

如果您正在尝试优化文件大小 – 请使用缩小器。

IMO您可以做的最好是在可读性和简单性方面进行“优化”。 这使代码更容易理解和维护。 有一些工具可以为您提供未经优化的版本并进行压缩和优化(请查看Google的闭包编译器)。

.ready()方法通常与匿名函数一起使用:

 $(document).ready(function() { // Handler for .ready() called. }); 

这相当于调用:

 $(function() { // Handler for .ready() called. }); 

可以在这里阅读

是的, $( function() {$(document).ready是一样的。

$( function() {作为简写语法,但$(document).ready使代码更具可读性。

请注意,您还可以找到这样的脚本:

 jQuery(document).ready(function(){ 

这里$ -sign被jQuery取代,以避免与其他库的冲突

http://docs.jquery.com/Using_jQuery_with_Other_Libraries

这是一个非常安全的方法来准备好运行代码

 jQuery(function($, undefined){ // code to run onready }); 

虽然我个人更喜欢这样做:

 (function($){ // create scope and pass specific aliased variables $(function($, undefined){ // attach callback to run onready // code to run onready }); })(jQuery); 

这样,您就可以创建自己的function包,而不必担心破坏其他人的代码或者使用松散的变量定义来破坏代码。 例如,您还可以调用您传递的变量以及您想要的任何名称,并使代码在准备就绪时不运行。

 (function($){ // create scope and pass specific aliased variables $(document).on('click', 'a[href]', function(){ // code to run when a link is clicked }); $(window).on('load',function(){ // code to run onload }); $(function($, undefined){ // attach callback to run onready // code to run onready }); })(jQuery); 

请注意,这些是相同的

 $(document).bind('ready', function(){}); $(document).on('ready', function(){}); $(document).ready(function(){}); $(function(){}); 

该文档没有加载事件

 $(document).on('load', function(){}); // will not work 

你在使用jQuerymobile吗? 如果是这样,而不是使用文档就绪使用

 $('#pageId').live('pageinit',function(){});