I am looking at a piece of code:
(function($) {
// other code here
$(document).ready(function() {
// other code here
});
})(jQue
No, IIFE doesn't execute the code in document ready.
(function($) {
console.log('logs immediately');
})(jQuery);
This code runs immediately logs "logs immediately" without document is ready.
(function($) {
$(document).ready(function(){
console.log('logs after ready');
});
})(jQuery);
Runs the code immediately and waits for document ready and logs "logs after ready".
This explains better to understand:
(function($) {
console.log('logs immediately');
$(document).ready(function(){
console.log('logs after ready');
});
})(jQuery);
This logs "logs immediately" to the console immediately after the window load but the "logs after ready" is logged only after the document is ready.
The alternative for $(document).ready(function(){}) is:
$(function(){
//code in here
});
From jQuery version 3.0, the ready handler is changed.
Only the following form of ready handler is recommended.
jQuery(function($) {
});
Ready handler is now asynchronous.
$(function() {
console.log("inside handler");
});
console.log("outside handler");
> outside handler
> inside handler