Не привязываются события Backbone

164
27 мая 2018, 02:00

Пытаюсь привязать события разными способами в разных местах и ни одно из них не привязывается:

 var GamesView = Backbone.View.extend({
        template: _.template(GamesTemplate),
        events: { //тут пытаюсь привязать
            'click .paginate_button': 'page',
            'click .next'           : 'nextPage',
            'click .previous'       : 'previousPage',
        },
        initialize: function(options){
            var that = this;
            this.collection = new Games(options);
            this.processRequest();
            this.listenTo(this.collection, 'sync', function(s){
                if (!('cid' in s)) {
                    that.render();
                }
                this.bind('click .next', this.nextPage, this); //тут пытаюсь привязать
            });
            this.bind('click .next', this.nextPage, this); //тут пытаюсь привязать
            this.game_filter = options.game_filter ? options.game_filter.toLowerCase() : '';
            this.active_page = 1;
            this.pages_count = 1;
            this.per_page = 10;
            App.GlobalEvents.on('games::changeFilter_' + this.collection.game_provider, this.onChangeFilter, this);

        },
        previousPage: function(e) {
            if (this.active_page > 1) {
                this.active_page--;
                this.render();
            }
        },
        nextPage: function(e) {
            if (this.active_page < this.pages_count) {
                this.active_page++;
                this.render();
            }
        },
        page: function (e) {
            var page = $(e.currentTarget).data('dt-idx');
            if (!page) {
                return;
            }
            this.active_page = page;
            this.render();
        },
        reset: function(){
            this.render();
        },
        processRequest: function(){
            this.collection.fetch({
                method: 'POST',
                data: {
                    game_provider: this.collection.game_provider
                }
            });
        },
        render: function(){
            var that = this;
            this.$el.html(this.template({
                map: map,
                title: map[this.collection.game_provider],
                provider: this.collection.game_provider
            }));
            var filtered_collection = this.collection.toJSON();
            if (this.game_filter) {
                filtered_collection = filtered_collection.filter(function(game) {
                    return game.name != null && game.name.toLowerCase().indexOf(that.game_filter) !== -1;
                });
            }
            this.$('.sortable').find('td').each(function () {
                var cell = $(this);
                cell.width(cell.width());
            });
            this.pages_count = Math.ceil(filtered_collection.length / this.per_page);
            var paginationModule = new PaginationModule();
            this.paginationView = new paginationModule.View({
                page_show:      App.Config.pageShow,
                page_count:     this.pages_count,
                page_active:    this.active_page,
                totalRecords:   filtered_collection.length,
                pageSize:       this.per_page
            });
            this.$el.append(this.paginationView.render().el);
            filtered_collection = _.chain(filtered_collection)
                .rest(this.per_page * (this.active_page - 1))
                .first(this.per_page)
                .value();
            var container = this.$('.games-container tbody');
            container.html('');
            _.each(filtered_collection, function(model, index) {
                model = new Game(model);
                container.append(new GameView({model: model}).render().el);
            });
            this.$('.sortable').sortable({
                cursor: 'move',
                axis: 'y',
                containment: 'parent',
                beforeStop: function(event, ui) {
                    that.save();
                }
            });
            this.bind('click .next', this.nextPage, this); //даже тут пытаюсь привязать
            return this;
        }
    });

Ошибок в консоли нет

READ ALSO
Удаления и добавления елементов jquery (button, li)

Удаления и добавления елементов jquery (button, li)

Мне нужно при нажатии на "удалить", удалять елемент li вместе с кнопкой delete и edit, но ничего не выходит

126
Корона и Якорь на JS

Корона и Якорь на JS

выполнял задание по JS, там надо было сделать игру Корона и ЯкорьИ вроде все довольно ясно, и код сравнил с кодом учебника, но не понимаю почему...

174
Выводить рандомные значения в графиках

Выводить рандомные значения в графиках

Как сделать чтоб на странице выводились рандомные значения в графиках каждые 5 секунд ?

180
Событие после полной загрузки HTML5 видео

Событие после полной загрузки HTML5 видео

Есть HTML страница на которой плавно по таймеру появляются элементы (jQuery):

137