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

Meg*_*rda 22 javascript jquery

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

$( function() {
  $( "#date_datepicker" ).datepicker( { dateFormat: "yy-mm-dd" } );
});
Run Code Online (Sandbox Code Playgroud)

删除 $( function() { 使得日期选择器不起作用.

这是否意味着它$( function() {是一样的$(document).ready

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

Fre*_*nds 33

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

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

  • $(document).ready(handler)
  • $().ready(handler) (不推荐这个)
  • $(handler)

  • 谢谢,我在谷歌搜索,但我认为有一些像$这样的特殊字符使得很难得到正确的结果. (4认同)

Han*_*ink 8

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

$(document).ready(function() {
  // Handler for .ready() called.
});
Run Code Online (Sandbox Code Playgroud)

这相当于调用:

$(function() {
 // Handler for .ready() called.
});
Run Code Online (Sandbox Code Playgroud)

可以在这里阅读


Ric*_*lly 5

是的,它是同一事物的简写版本。该$函数$(document).ready在将函数作为参数传递时调用该函数。

如果您尝试在速度方面进行优化 - 两者的性能几乎相同,但是$(document).ready(handler)如果执行多次,时间越长速度越慢。

如果您尝试在文件大小方面进行优化 - 使用压缩器。

IMO 你能做的最好的事情就是在可读性和简单性方面“优化”。这使得代码更容易理解和维护。有一些工具可以获取未优化的版本并为您压缩和优化(查看 Google 的闭包编译器)。