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');
}
}
});