jQuery .load()
Learn all about the jQuery function .load().
This method is a shortcut for .on( "load", handler )
.
The load
event is sent to an element when it and all sub-elements have been completely loaded. This event can be sent to any element associated with a URL: images, scripts, frames, iframes, and the window
object.
For example, consider a page with a simple image:
1
|
|
The event handler can be bound to the image:
1
2
3
|
|
As soon as the image has been loaded, the handler is called.
In general, it is not necessary to wait for all images to be fully loaded. If code can be executed earlier, it is usually best to place it in a handler sent to the .ready()
method.
The Ajax module also has a method named .load()
. Which one is fired depends on the set of arguments passed.
Caveats of the load
event when used with images
A common challenge developers attempt to solve using the .load()
shortcut is to execute a function when an image (or collection of images) have completely loaded. There are several known caveats with this that should be noted. These are:
- It doesn’t work consistently nor reliably cross-browser
- It doesn’t fire correctly in WebKit if the image src is set to the same src as before
- It doesn’t correctly bubble up the DOM tree
- Can cease to fire for images that already live in the browser’s cache
Note: The .live()
and .delegate()
methods cannot be used to detect the load
event of an iframe. The load event does not correctly bubble up the parent document and the event.target isn’t set by Firefox, IE9 or Chrome, which is required to do event delegation.