Обработка событий Backbone основана на 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;
}
Демо: http://jsfiddle.net/ambiguous/c7wH2/