11

backbonejsビューの画像に「onload」イベントを添付したいと思います。現在、「イベント」に「load img」:「function」として含めていますが、起動されません。

これを行うための提案はありますか?

4

1 に答える 1

11

Backboneのイベント処理は、バブルするイベントに基づいてdelegateおり、delegateこのイベントでのみ使用できます。問題は、ロードイベントがバブルしないことです。HTML5仕様から:

ダウンロードが成功した場合
要素を完全に使用可能な状態に 設定しimg、画像の表示を適切に更新してloadimg要素で指定された単純なイベントを発生させます。

そして、単純なイベントはバブルしません:

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/

于 2012-03-22T20:30:41.027 に答える