![](/img/trans.png)
[英]Are $(function(){}); and $(“document”).ready(function(){}); the same?
[英]jQuery $( function() {} ) and $(document).ready the same?
要在字段上有一个工作日期选择器,我必须将此脚本放在我的元素中
$( 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)
.ready()方法通常与匿名函数一起使用:
$(document).ready(function() {
// Handler for .ready() called.
});
这相当于调用:
$(function() {
// Handler for .ready() called.
});
是的,它是同一件事的速记版本。 当函数作为参数传递时, $
函数调用$(document).ready
函数。
如果你试图在速度方面进行优化 - 两者都会$(document).ready(handler)
,但是如果执行很多次,那么更长的$(document).ready(handler)
将会更快。
如果您正在尝试优化文件大小 - 请使用缩小器。
IMO最好的办法是在可读性和简单性方面进行“优化”。 这使代码更容易理解和维护。 有一些工具可以为您提供未经优化的版本并进行压缩和优化(请查看Google的闭包编译器)。
是的, $( function() {
和$(document).ready
是一样的。
$( function() {
用作简写语法,但$(document).ready
使代码更具可读性。
这是一种非常安全的方法来准备好运行代码
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($){ // 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
请注意,您还可以找到这样的脚本:
jQuery(document).ready(function(){
这里$ -sign被jQuery取代,以避免与其他库的冲突
你在使用jQuerymobile吗? 如果是这样,而不是使用文档就绪
$('#pageId').live('pageinit',function(){});
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.