Почему событие прокрутки не запускается при рендеринге шаблона в представлении Backbone?

0

В этом примере кода представление Backbone привязано к ранее существующему элементу DOM. Событие прокрутки запускается, как ожидалось.

В этом альтернативном образе представление Backbone отображает HTML вместо использования ранее существовавшего элемента DOM. Событие прокрутки не срабатывает.

Зачем?

Основное отличие состоит в следующем:

this.$el.html(template);
Теги:
backbone.js

1 ответ

1
Лучший ответ

Это работает:

http://jsfiddle.net/hKWR9/1/

$(function(){
    var MyView = Backbone.View.extend({
        className: 'scrollbox',
        events: {
            'click': 'onClick',
            'scroll': 'onScroll'
        },
        initialize: function() {
            this.render(); 
        },
        render: function() {
            var template = '<div class="filler"></div>';
            $('body').append(this.$el); 
            this.$el.html(template);

        },
        onClick: function() {
            console.log('click');
        },
        onScroll: function() {
            console.log("scroll");
        }
    });

    var App = new MyView();

}());

Ваша скрипка не работает, потому что вы определили свой el с именем класса .scrollbox, в то время как это должно было быть scrollbox. Кажется, что нет никакой пользы в создании другого "прокрутки" в этом ".scrollbox".

Ещё вопросы

Сообщество Overcoder
Наверх
Меню