好吧,所以我已經閱讀了關於Backbone視圖和事件沒有被解僱的其他幾個問題,但是我仍然沒有感到難過。我一直在干擾骨幹大約一天,所以我敢肯定我錯過了一些基本的東西。下面是什麼我正在使用一個的jsfiddle: http://jsfiddle.net/siyegen/e7sNN/3/backbone.js事件和el
(function($) {
var GridView = Backbone.View.extend({
tagName: 'div',
className: 'grid-view',
initialize: function() {
_.bindAll(this, 'render', 'okay');
},
events: {
'click .grid-view': 'okay'
},
okay: function() {
alert('moo');
},
render: function() {
$(this.el).text('Some Cow');
return this;
}
});
var AppView = Backbone.View.extend({
el: $('body'),
initialize: function() {
_.bindAll(this, 'render', 'buildGrid');
this.render();
},
events: {
'click button#buildGrid': 'buildGrid'
},
render: function() {
$(this.el).append($('<div>').addClass('gridApp'));
$(this.el).append('<button id="buildGrid">Build</button>');
},
buildGrid: function() {
var gridView = new GridView();
this.$('.gridApp').html(gridView.render().el);
}
});
var appView = new AppView();
})(jQuery);
的okay
事件在GridView上不火,我假設,因爲div.grid-view
當第一次綁定事件不存在。我應該如何動態地處理視圖上建立的事件的綁定和觸發? (此外,這是一個簡單的例子,但如果我做其他事情,我不應該感到自由對我大喊大叫)
因爲'el'是'.grid-view' div標籤。並且您正在該div中找到'.grid-view'類名稱元素。你不會得到它。 – Mahi