Sie können einen onerror
Handler für das Bild verwenden:
<li><a href='http://www.so.com'>
<img src='http://www.so.com/1.jpg' onerror='hideContainer(this)'>
</a></li>
// this function must be in the global scope
function hideContainer(el) {
$(el).closest("li").hide();
}
Oder könnten Sie es sogar nur entfernen, wenn Sie es wirklich wollen, als wäre es nie in den DOM vorhanden:
// this function must be in the global scope
function hideContainer(el) {
$(el).closest("li").remove();
}
Wenn Sie keinen onerror
Handler in den HTML-Code (der einzige zuverlässige Ort, den Sie es setzen können) setzen, dann können Sie die Bilder zunächst ausblenden und dann überprüfen .complete
wenn Ihre jQuery läuft und wenn das Bild noch nicht vollständig ist, dann eine .load()
Handler wie folgt installieren:
CSS:
/* use some more specific selector than this */
li {display: none;}
jQuery:
$("li img").each(function() {
if (this.complete) {
// img already loaded successfully, show it
$(this).closest("li").show();
} else {
// not loaded yet so install a .load handler to see if it loads
$(this).load(function() {
// loaded successfully so show it
$(this).closest("li").show();
});
}
});
können Sie ein Problem dieses Problems zusammenstellen? – karthikr
@karthikr Ich fange an, gerade jetzt daran zu arbeiten und bearbeite die Frage mit dem Link. Danke, gute Idee. – Chris
http://jsfiddle.net/H7Aq7/6/ – Chris