Backbone.js просматривает события, зарегистрированные, но не запускаемые

Только начинаю здесь и, похоже, не могу заставить эту очень простую вещь работать. Все мои элементы отображаются так, как я ожидаю. Мои события регистрируются в firefox на вкладке «события», но ни одно из них не срабатывает (щелчок, наведение мыши и т. д.). Я использую следующее.

  • магистраль 0.9.2
  • подчеркивание 1.4.1
  • Марионетка .10.2
  • требуют-jquery (requireJs 2.1.0) (jquery 1.8.2)

Маршрутизатор

define([
'jquery',
'backbone',
'underscore',
'views/TodaysProgramsView',
'collections/ProgramSnippetCollection'],
function($, Backbone, _, TodaysProgramsView, ProgramSnippetCollection){
    return Backbone.Router.extend({
        initialize:function () {

            var programSnippetCollection = new ProgramSnippetCollection([
                {title:'underwater basket weaving'},
                {title:'How to win friends and influence people and stuff'}
            ]);

            this.mainView = new TodaysProgramsView({
                el : $("#todays_programs"),
                collection:programSnippetCollection
            });

            Backbone.history.start();
        },
        routes:{
            '':'home'
        },
        'home':function () {
            this.mainView.render();
        }
    });
});

Представление коллекции [TodaysProgramsView.js]

define([
'jquery',
'backbone',
'underscore',
'views/ProgramSnippetView'],
function($, Backbone, _, ProgramSnippetView){
    return  Backbone.Marionette.CollectionView.extend({

        events: {
            "click"   : "clicked"

        },
        clicked : function(){
            alert("parent clicked")
        },

       itemView : ProgramSnippetView
    });
});

Представление элемента [ProgramSnippetView.js]

define([
'jquery',
'backbone',
'underscore',
'text!templates/programSnippet.html'],
function($, Backbone, _, template){
    return Backbone.Marionette.ItemView.extend({


        events: {
            "click"   : "courseClicked",
            'mouseover' : 'mousedOver'
        },

        render: function(){

            var json = this.model.toJSON();
            console.log("RENDERING SNIPPET with data", json);
            $(this.el).html( _.template(template, json) );
            return this;
        },

        courseClicked : function(){
            alert("you clicked a course, good work");
        },

        mousedOver : function(){
            console.log("Mousin!");
        }
    });


});

person Matt Broekhuis    schedule 05.10.2012    source источник
comment
Вы пытались быть более явным с событием click #theIDoftheElement: courseClicked ?   -  person Dane W    schedule 06.10.2012
comment
Сначала я думал в том же духе, но 'click':'courseClicked' тоже должен работать. Событие Click будет просто прикреплено к el, поэтому, когда он нажмет на представление, предупреждение сработает, как я думаю...   -  person jmk2142    schedule 06.10.2012
comment
Я пробовал так много вещей, он просто отказывается стрелять. Не могу понять, что я делаю неправильно   -  person Matt Broekhuis    schedule 07.10.2012


Ответы (1)


После большого разочарования и многих часов настройки javascript я заметил, что там был div с z-индексом, равным 2. Это перекрывало мою цель и поглощало все события. Вздох.

person Matt Broekhuis    schedule 08.10.2012