What is the difference between these jQuery ready functions?

Jquery

Jquery Problem Overview


what is difference between

$(function(){

}); 

and

$(document).ready(function() { 

});

Jquery Solutions


Solution 1 - Jquery

Nothing whatsoever.

> This function behaves just like > $(document).ready(), in that it should > be used to wrap other $()

You can see this in the source code:

rootjQuery = jQuery(document);

...

} else if ( jQuery.isFunction( selector ) ) {
	return rootjQuery.ready( selector );
}

Solution 2 - Jquery

} else if (jQuery.isFunction(selector)) {
    return rootjQuery.ready(selector);
}

From the source

Calling $(document).ready(selector) saves a few if statements.

Although jQuery does cache $(document) internally that might make $(f) faster.

Benchmarked

Solution 3 - Jquery

Both are equivalent, the first is a shorthand form.

Solution 4 - Jquery

$(function(){}) is a short cut for the dom ready

A function passed as an argument to the jQuery constructor is bound to the document ready event.

Solution 5 - Jquery

I suggest you read this. As you can see

> All three of the following syntaxes are equivalent: > > $(document).ready(handler) > > $().ready(handler) (this is not recommended) > > $(handler)

So it's up to you and to what you prefer.

Solution 6 - Jquery

The two are exactly equivalent: use whichever form you like.

That said, I personally always use the expanded form $(document).ready(function(){}); for the simple reason that it is completely obvious what the code is doing. The approximate idea is that of "self-documenting code". Anyone coming to the code later on will immediately see that the code is to be run on the document's ready event. With the short-hand form, you have to rely upon the reader of your code understanding the meaning.

Solution 7 - Jquery

We have run into situations where IE9 does not run functions within $(function() {}); in the same manner or timing as $(document).ready(function(){});

The issue reared its head for us specifically in reading information out of a query string and processing and displaying that information on the screen, or using it to process a form. IE9 would process the information once it was cached with $(function(), and a user refreshed the page. But on first run, nothing worked right. However, once we switching from $(function(){}); to $(document).ready(), the issue was fixed. We changed NOTHING else.

I so look forward to the day I don't have to test for IE9 and lower.

Solution 8 - Jquery

They're effectively the same. No difference.


This is the native way.

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

And this is a shorthand for the previous.

$(function() {
    // code
});

jQuery source code

Solution 9 - Jquery

I use $(function() {}); because it's shorter. As far as I know there is no difference between the two ways of doing it.

Solution 10 - Jquery

jQuery recommends to use $( fn ).

> $(document).ready(function() {}); or $(document).on("ready", fn); > will cause the function to be called when the document is ready, but > only if it is attached before the browser fires its own > DOMContentLoaded event. That makes it unreliable for many uses, > particularly ones where jQuery or its plugins are loaded > asynchronously after page load.

For more info, please look into jquery-migrate

Attributions

All content for this solution is sourced from the original question on Stackoverflow.

The content on this page is licensed under the Attribution-ShareAlike 4.0 International (CC BY-SA 4.0) license.

Content TypeOriginal AuthorOriginal Content on Stackoverflow
QuestionStarxView Question on Stackoverflow
Solution 1 - JquerySLaksView Answer on Stackoverflow
Solution 2 - JqueryRaynosView Answer on Stackoverflow
Solution 3 - JqueryBrokenGlassView Answer on Stackoverflow
Solution 4 - JqueryAli HabibzadehView Answer on Stackoverflow
Solution 5 - JqueryfoliveiraView Answer on Stackoverflow
Solution 6 - JquerylonesomedayView Answer on Stackoverflow
Solution 7 - JqueryWill LanniView Answer on Stackoverflow
Solution 8 - Jquerynyuszika7hView Answer on Stackoverflow
Solution 9 - JqueryRichard DaltonView Answer on Stackoverflow
Solution 10 - Jquerypradip garalaView Answer on Stackoverflow