无法获得骨干视图来响应this.on()添加的事件

时间:2013-04-18 15:43:35

标签: backbone.js backbone-views backbone-events

我想在我的视图中听取event / s,但只是经过一些处理(具体来说,我只是在成功的ajax调用之后响应这些事件 - 这一切都在工作,这只是这个事件的东西我无法想象)。

因此,使用events属性不会实现我所追求的目标。

我是骨干的新手,我不知道我的this.on('click'...)代码问题是什么(backboneClicked()不会触发)。

我已经将下面的事件属性包括在内,因为我将其置于测试中并触发了myClick()。 jqueryClicked()也会触发。

我错过了一些非常明显的东西吗?

我知道还有许多关于不发射事件的观点的其他问题,但我看不到任何与此问题相符的内容。

任何帮助表示赞赏。

var InputListView = Backbone.View.extend({
    el: '#input-list',

    events: {
        'click input'       : 'ourClick'
    },

    initialize: function(options) {         
        this.$el.click(this.jqueryClicked);

        this.on('click', this.backboneClicked);
    },

    ourClick: function(e) {
        alert('ourClick');
    },

    backboneClicked: function(e) {
        alert('backboneClicked');
    },

    jqueryClicked: function(e) {
        alert('jqueryClicked');
    }
});

1 个答案:

答案 0 :(得分:1)

this.on('click', this.backboneClicked);

您对此有何期待?你无法点击一个视图,它是一个对象,而不是一个DOM元素......虽然如果你真的想测试它是否有效,请尝试在你的行之后添加一个this.trigger('click')

尽管如此,我还没有明白这一点。如果您正在使用Backbone的on方法,那么您通常会尝试收听Backbone事件(或自定义事件),而不是UI事件。