Das Problem ist, dass Sie nicht event delegation
für das error
Ereignis auf dem Dokument-Objekt, denn im Gegensatz zu anderen Veranstaltungen (wie onclick
), das onerror
Ereignis nicht eingeblasen verwenden können zum Dokumentobjekt.
Verwenden normale Ereignis statt Bindung:
$('img').on("error", function() {
this.src = ResolveUrl("~/images/tree-item.png");
});
- P. S - Dies wird nur auf den Bildern arbeitet, die bereits auf dem DOM sind, wenn dieser Befehl ausgeführt wird.
Um auch dynamisch hinzugefügt Bilder handhaben, müssen Sie jedes Bild dieses Ereignis messen Sie den DOM hinzufügen. Hier ein Beispiel:
function handleError() {
this.src = ResolveUrl("~/images/tree-item.png");
}
// Bind the event to the existing images on the DOM when the document is ready
$(document).ready(function() {
$('img').on("error", handleError);
}
// An example for a function that adds images dynamically
function addImage(imgSource, destination) {
var newImg = $("img").attr("src", imgSource)
.on("error", handleError);
$(destination).append(newImg);
}
Wo ist ResolveUrl() Code? – Unknown
Es ist eine clientseitige Funktion. Selbst wenn ich es entferne, löst der Alarm nicht aus – user960567
Ich bin mir nicht sicher, ob Sie mit dem Ereignis 'error' Ereignisdelegierung auf' Dokument' durchführen können. Dieses Ereignis wird nicht zum Dokumentenobjekt gesprengt, wenn ich mich nicht irre. – Itay