backbone.js events и el

Хорошо, я прочитал несколько других вопросов о представлениях Backbone и событиях, которые не запускаются, но я все еще не получаю это печально. Я возился с Backbone около дня, поэтому уверен, что упускаю что-то базовое. Вот jsfiddle с тем, с чем я работаю: http://jsfiddle.net/siyegen/e7sNN/3/

(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($('
').addClass('gridApp')); $(this.el).append(''); }, buildGrid: function() { var gridView = new GridView(); this.$('.gridApp').html(gridView.render().el); } }); var appView = new AppView(); })(jQuery);

Событие okay в GridView не работает огонь, я предполагаю, потому что div.grid-view не существует, когда событие сначала привязано. Как мне обрабатывать привязку и запуск события, которое динамически построено на представлении? (Кроме того, это короткий пример, но не стесняйтесь кричать на меня, если я делаю что-то еще, чего не должен)

12
задан Thaddeus Albers 4 September 2013 в 23:59
поделиться