Use Custom Missing Image Graphics Using jQuery
Yesterday I posted an article about how you can use your own "missing image" graphics when an image fails to load using MooTools. Here's how to do the same using jQuery.
The jQuery JavaScript
$(document).ready(function() {
/* version 1 */
$('img.missing1').error(function() {
$(this).attr({
src: 'https://davidwalsh.name/demo/missing-image.jpg',
alt: 'Sorry! This image is not available!',
style:'border: 1px solid #f00;width:110px;height:40px;'
});
});
/* version 2 */
$('img.missing2').error(function() {
$(this).attr({
src: 'https://davidwalsh.name/demo/missing-image-2.jpg',
alt: 'Sorry! This image is not available!',
style:'border: 1px solid #f00;width:30px;height:28px;'
});
});
});
Note that I've provided two examples. If you want to get really specific, you can create multiple images and account for different sizes when possible.
A great website accounts for all of the details. This is yet another way of accounting for the finest of details. A website is NEVER complete!
![9 Mind-Blowing WebGL Demos]()
As much as developers now loathe Flash, we're still playing a bit of catch up to natively duplicate the animation capabilities that Adobe's old technology provided us. Of course we have canvas, an awesome technology, one which I highlighted 9 mind-blowing demos. Another technology available...
![Introducing MooTools Templated]()
One major problem with creating UI components with the MooTools JavaScript framework is that there isn't a great way of allowing customization of template and ease of node creation. As of today, there are two ways of creating:
new Element Madness
The first way to create UI-driven...
![Add Styles to Console Statements]()
I was recently checking out Google Plus because they implement some awesome effects. I opened the console and same the following message:
WARNING!
Using this console may allow attackers to impersonate you and steal your information using an attack called Self-XSS.
Do not enter or paste code that you...
![HTML5’s placeholder Attribute]()
HTML5 has introduced many features to the browser; some HTML-based, some in the form of JavaScript APIs, but all of them useful. One of my favorites if the introduction of the placeholder
attribute to INPUT elements. The placeholder
attribute shows text in a field until the...
Interesting :)
There’s just one thing -> you wrote (The MooTools Javascript)
Guess it should be ( The jQuery Javascript )
MooTools runs in your blood man :D
Oooooooops. Fixed.
But MooTools DOES run in my blood! :)
So we can “Use Custom Missing Image Graphics using JQuery or MooTools”. :)
Good job
umm….attr
Support for firefox :P
Do you know if it’s possible to use the .live function to bind this behavior?
That would enable invalid dynamic images that are injected after the document.ready event to also have the same behavior..
Besides that, thanks for a brilliant snippet..
Cheers,
Erik
But This means i have to give a “.missing” class to all images in my page ! ?? its not just a detection for the broken link
@Bassem: You could automate giving that class to all of the images using jQuery.
I usually use jquery’s builtin function and it works perfectly
Hi I’m using this plugin and it’s working very well except for one problem. It seems to be interfering with the jQuery ui dialog feature. When I include $.idleTimer(120000) in my script firebug shows a ‘too much recursion’ error when I attempt to close an open modal dialog. When I remove that line of code it works fine. Any ideas? Thanks in advance
Very cool. Just what I needed. Thanks!!!!!!!!!!!!!!!!!!!!
There’s one small problem here. There’s no guarantee that the image will load after jQuery registers events. If the image loads first, this code won’t work. This is especially likely on image-heavy pages.
There is a workaround, though: add your error handler to the load event and explicitly reassign the image src. This makes sure the error handler has been registered before the image loads.
For example: