Skip to main content

These are the different types of Document Ready functions typically used in jQuery. A lot of developers seem to use them without really knowing why. So I will try to explain why you might choose one version over another.

// =======================================================================
//             Document Ready Example 1
// =======================================================================

$(document).ready(function () {
  // do jQuery stuff when DOM is ready
});

// =======================================================================
//             Document Ready Example 2
// =======================================================================

$(function() {
  // jQuery code here
  // This is equivalent to example 1 they literally mean the same thing.
});

// =======================================================================
//             Document Ready Example 3
// =======================================================================

jQuery(document).ready(function ($) {
  // do jQuery stuff when DOM is ready
});

// Adding the jQuery can help prevent conflicts with other JS frameworks.
// 
// Why do conflicts happen?
// Conflicts typically happen because many JavaScript Libraries/Frameworks use the same shortcut
// name which is the dollar symbol $. Then if they have the same named functions the browser gets
// confused!
// 
// How do we prevent conflicts?
// Well, to prevent conflicts i recommend aliasing the jQuery namespace (ie by using example 3 above).
// Then when you call $.noConflict() to avoid namespace difficulties (as the $ shortcut is no longer available)
// we are forcing it to wrtie jQuery each time it is required.

jQuery.noConflict(); // Reverts '$' variable back to other JS libraries
jQuery(document).ready(function () {
  // do jQuery stuff when DOM is ready with no conflicts
});

// =======================================================================
//               Document Ready Example 4
// =======================================================================

$(window).load(function () {
  //initialize after images are loaded
});

// Sometimes you want to manipulate pictures and with $(document).ready() you won't be able to do that
// if the visitor doesn't have the image already loaded. In which case you need to initialize the
// jQuery alignment function when the image finishes loading.