Ответ 1
Проблема в том, что вы не можете использовать event delegation
для события error
в объекте документа, потому что в отличие от других событий (таких как onclick
), событие onerror
не передается объекту документа.
Вместо этого используйте обычную привязку событий:
$('img').on("error", function () {
this.src = ResolveUrl("~/images/tree-item.png");
});
- P.S. При выполнении этой команды это будет работать только с изображениями, которые уже находятся в DOM.
Для обработки динамически добавляемых изображений, вам необходимо прикрепить это событие к каждому изображению, которое вы добавляете в DOM. Вот пример:
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").on("error", handleError)
.attr("src", imgSource);
$(destination).append(newImg);
}