2

onerrorビュー内の画像にイベントをバインドしたいと考えています。

onerror泡立たないので使えませんevents: { 'error img' : 'imgEvent_' }

どうすればこれを次のようなものにバインドできthis.el.querySelector('img').on('error, imgEvent_, this);ますか?

インライン HTML は使用しないでください。

言及するのを忘れていました...私はDOMライブラリを使用していないため、jQueryなどは使用していません。

これは私がしました:

this.el.queryelector('img').onerror = this.myFunction_;

私の問題は、実際には要素である内this.myFunction_にあるということです...私はまだ存在する場所にアクセスする必要があります。これを解決するにはどうすればよいですか?thisimgthismyFunction_

4

2 に答える 2

4

ここでは Backbone.js がドキュメントから指定された要素 ( http://api.jquery.com/delegate/ )にイベントを委任するため、イベント マップで onerror をバインドすることはできません。

events: { 'error img': 'callaback' }

次のような意味です。

$(document).on('error', 'img', callback); 

ドキュメントにエラーがありますか? imgに委任できますか?

自分でバインドすることをお勧めします。

this.$('img').on('error', callback);

PS私の英語ですみません。

于 2013-03-27T20:02:11.643 に答える
1

error 関数に与えられた最初の引数の target プロパティから image 要素を参照できます。Underscore の bind メソッドを使用して、メソッドをビューにバインドできます。

this.el.queryelector('img').onerror = _.bind(function(error){
    var img = error.target;
    this.myFunction_();
}, this);

常にビューを参照する必要がありmyFunction、画像などを気にしない場合は、使用できます

this.el.queryelector('img').onerror = _.bind(this.myFunction_, this);

またはアンダースコアの bindAll メソッド

_.bindAll(this, 'myFunction_');
this.el.queryelector('img').onerror = this.myFunction_;
于 2015-11-30T15:27:59.880 に答える