Like
ボタンを含むビューを作成するために backbone.js を使用しています。このビューのモデルには属性が含まれておりis_liked
、その値が1
の場合、呼び出された関数はボタンsetStateLike
のスタイルを変更します。Like
問題:this.setStateLike()
関数で使用しているボタンを選択できませんinitialize
。そうするだけで a が返されます[]
。しかし、this.setStateLike
クリック イベント ハンドラーとして定義すると、ボタンの選択が機能します。奇妙なことに、this.setStateLike()
呼び出された withininitialize
は選択できますが$(this.el)
、選択できません$(this.el).find()
!
ここで何が起こったのか、どうすれば修正できますか? ありがとう!
PhotoListItemView = Backbone.View.extend({
tagName: 'div',
className: 'photo_box',
events: {
'click': 'setStateLike'
},
initialize: function() {
this.setStateLike();
},
render: function() {
$(this.el).html( this.template( this.model.toJSON() ) );
return this;
},
setStateLike: function() {
console.log( $(this.el).find('#like') ); // returns []
if(this.model.get('is_liked')) {
console.log( $(this.el) ); // returns correctly
console.log( $(this.el).find('#like') ); // returns []
// Change icon to Active state
$(this.el).find('#like.photo_btn').addClass('photo_btn_active').attr('id', 'unlike');
}
}
});