backbonejsビューの画像に「onload」イベントを添付したいと思います。現在、「イベント」に「load img」:「function」として含めていますが、起動されません。
これを行うための提案はありますか?
backbonejsビューの画像に「onload」イベントを添付したいと思います。現在、「イベント」に「load img」:「function」として含めていますが、起動されません。
これを行うための提案はありますか?
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/