I am looking at a piece of code:
(function($) { // other code here $(document).ready(function() { // other code here }); })(jQuery);
I though the IIFE does the functions of $(document).ready, is this code correct? or can I just remove the $(document).ready and place the code directly inside the IIFE.
ready' function in a page? Can we add more than one 'document. ready' function in a page? Yes we can do it as like I did in below example both the $(document).
ready() and $(window). load() event is that the code included inside onload function will run once the entire page(images, iframes, stylesheets,etc) are loaded whereas the $(document). ready() event fires before all images,iframes etc. are loaded, but after the whole DOM itself is ready.
load(function(){ // ...}) @undefined, this is almost the same as $(document). ready(function(){ ... }) . load() will wait until the graphics are also loaded.
So technically they are both the same. Not major difference between these two declaration. They used based on weather you use JavaScript then you should use $(document). ready declaration in other case you use jQuery library which is a part of JavaScript then you should use $(function) declaration.
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
If you love us? You can donate to us via Paypal or buy me a coffee so we can maintain and grow! Thank you!
Donate Us With