2011-05-20 13 views

Respuesta

6

jQuery tiene una función para hacer frente a esto, echar un vistazo a .error()

Así, por ejemplo, podría asociar un controlador de .error() a todas las imágenes y mostrar algo más si hay un error, al igual que la fuente ya no existe :

$('img').error(function() { 
    $(this).hide(); 
}).attr("src", "missing.jpg"); 

Here is a demo

+0

Sí, funciona muy bien. Gracias :) – user558134

+1

Lo tienes al revés: no ocultes la imagen, y debes establecer 'src' en la devolución de llamada. Ver mi respuesta –

0

sí se puede utilizar error evento como este ....

$('#imageId') 
    .error(function() { 
    alert('Something bad happened.') 
    }) 
    .attr("src", "image.gif"); 
+1

@ Vivek ....;) En lugar de 'usar' usar ... 'test'. ¡O supongamos que usa * alertas * en todas sus páginas web! ;) Esto parece una respuesta modificada de copiar y pegar de la respuesta anterior. –

6

@Scoobler tiene la idea correcta, pero la implementación incorrecta.

$(function() 
{ 
    $('img').error(function() 
    { 
     $(this).attr('src', 'http://i.stack.imgur.com/THJzu.gif'); 
    }); 
}); 

El .error() vinculante debe lugar el documento listo - la carga de la ventana es demasiado tarde.

Demostración: http://jsfiddle.net/mattball/EebmC/

+0

Pensé lo mismo, pero extrañamente su enlace de demostración funciona, incluso en un enorme DOM donde lo probé. – needfulthing

Cuestiones relacionadas