Skip to main content

Understanding $(document).ready() in jQuery

Understanding $(document).ready() in jQuery

To ensure an event works on your page, use the $(document).ready() function. This function loads everything inside it as soon as the DOM is ready, before the page contents are fully loaded.

Basic Usage

Here's how to use the $(document).ready() function to ensure your jQuery code runs when the document is ready:

$(document).ready(function() {
    // put all your jQuery code here
});

Advantages of $(document).ready()

The $(document).ready() function has several advantages:

  • Separation of Concerns: Keep your JavaScript/jQuery code in a separate file for better maintainability.
  • Inline JavaScript Avoidance: Avoid adding "behavioral" markup in the HTML, which keeps the HTML cleaner.
  • Multiple Functions: Unlike the onload attribute, which is limited to one function, $(document).ready() allows multiple functions.
  • Early Execution: Allows events to fire as soon as the DOM is registered by the browser.

Comparison with Traditional JavaScript

Traditional JavaScript often uses the onload attribute in the <body> tag, which has several drawbacks:

  • Adds "behavioral" markup to the content.
  • Limited to one function.
  • Triggers events when the window loads, not when the DOM is ready.

Jeremy Keith's book DOM Scripting explains how to create an addLoadEvent function for multiple functions, but it requires more code than the straightforward $(document).ready() method.

Conclusion

The $(document).ready() function in jQuery is a simple and effective way to execute code as soon as the DOM is fully loaded, providing benefits in terms of code organization, maintainability, and early execution.

Comments

Popular posts from this blog

Handling Change Events in jqGrid

Handling Change Events in jqGrid In this tutorial, we'll explore how to handle the change event in jqGrid to dynamically update another column based on the selected value. This approach is useful when you need to update related data based on user selections. Example Scenario Let's say we have a jqGrid table with two columns: Country and State. When the user selects a country, the State column should dynamically update to show the relevant states for the selected country. Implementation We'll use the dataEvents option in the colModel configuration to handle the change event. HTML Structure First, let's set up our basic HTML structure: <!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8"> <meta name="viewport" content="width=device-width, initial-scale=1.0"> <title>H...

Handling Row Selection in jqGrid with jQuery

Handling Row Selection in jqGrid with jQuery The example below specifies the action to take when a row is selected in a jqGrid: var lastSel; jQuery("#gridid").jqGrid({ ... onSelectRow: function(id) { if(id && id !== lastSel) { jQuery('#gridid').restoreRow(lastSel); lastSel = id; } jQuery('#gridid').editRow(id, true); }, ... }); Explanation This script sets up a jqGrid with a custom action for when a row is selected. Here’s a step-by-step explanation: var lastSel; : A variable to store the last selected row ID. jQuery("#gridid").jqGrid({ ... }); : Initializes the jqGrid on the element with ID gridid . onSelectRow: function(id) { ... } : Defines a function to execute when a row is selected. ...

Persisting jqGrid State with Cookies

Persisting jqGrid State with Cookies jqGrid is an excellent jQuery plugin for displaying a grid. To enhance user experience, we added some filter possibilities and used jQuery to update the URL where data was fetched from. However, when users navigated away from the grid and returned, it would reset to its start position, losing any filtering or sorting they had set. To solve this, we needed to store the user's selections. Here are two JavaScript functions that achieve this using cookies: function saveGridToCookie(name, grid) { var gridInfo = new Object(); name = name + window.location.pathname; gridInfo.url = grid.jqGrid('getGridParam', 'url'); gridInfo.sortname = grid.jqGrid('getGridParam', 'sortname'); gridInfo.sortorder = grid.jqGrid('getGridParam', 'sortorder'); gridInfo.selrow = grid.jqGrid('getGridParam', 'selro...