それぞれが異なるel属性を持つ2つ(またはそれ以上)のビューインスタンスを作成し、backbone.jsビューのイベントハッシュ(jQuery経由ではありません) 。すべてのインスタンスが同じel
を持っている場合に発生させるイベントを取得backbone.jsビューelを動的に割り当てる適切な方法
は簡単です:
someView = Backbone.View.extend({
el: '#someDiv',
events: {
'click': 'someFunction'
},
someFunction: function(){
//Do something here
}
});
これまでのところ、私はinitialize
機能でel
を割り当て、通常events
を設定し、次のように、イベントがトリガしていない場合:
someView = Backbone.View.extend({
events: {
'click': 'someFunction'
},
initialize: function(options){
this.el = options.el
},
someFunction: function(){
//Do something here
}
});
私の最初の本能はel
が関心のDOM要素の文字列表現を返す関数である持っていることでした
someView = Backbone.View.extend({
el: function(){
return '#someDiv-' + this.someNumber
},
events: {
'click': 'someFunction'
},
initialize: function(options){
this.someNumber = options.someNumber
},
someFunction: function(){
//Do something here
}
});
ただし、のxインスタンス化がある場合は、これによってsomeFunction
回がトリガーされます。
次は私がinitialize
にel
とevents
属性の両方を設定してみました:
someView = Backbone.View.extend({
initialize: function(options){
this.el = options.el
this.events = {
'click': 'someFunction'
}
},
someFunction: function(){
//Do something here
}
});
をが、これはイベントをトリガしません。この時点で、私はかなり釣りをしています。
誰でも、そのインスタンスに対してのみトリガーするイベントを持つインスタンスに固有のel
でbackbone.jsビューをインスタンス化し、View
のインスタンスをインスタンス化していないことを知っていますか?
ありがとう、エドワード。 – kikuchiyo
@EdwardMSmith Fiddlesを更新してください、彼らは働いていません... –
2つのjsfiddlesを、githubからではなく、CDNjからのアンダースコアとバックボーンのソースに更新しました。 あなたが見ていた問題だとします。 –