Ответ 1
Обработка событий на основе базы данных основана на delegate
и delegate
может использоваться только с событиями, которые пузырятся. Проблема в том, что события загрузки не пузырятся; из спецификация HTML5:
Если загрузка прошла успешно
Установите элементimg
в полностью доступное состояние, соответствующим образом обновите представление изображения и запустите простое событие с именемload
в элементеimg
.
И простое событие не пузырится:
Увольнение простого события с именем e означает, что событие с именем e, которое не пузырится (кроме случаев, когда указано иное) [...]
Итак, вам придется подключить обработчик вручную с помощью чего-то вроде этого:
render: function() {
var self = this;
this.$el.append(some_html_with_img_elements);
this.$el.find('img').on('load', function() { self.img_loaded() });
return this;
}