0

我想在我的视图中收听事件,但只有在经过一些处理之后(具体来说,我只是在成功的 ajax 调用后对这些事件做出响应 - 这一切正常,只是这个事件的东西我不能数字)。

因此,使用 events 属性不会达到我想要的效果。

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

我已经包含了下面的 events 属性,因为我将它放入测试并触发 ourClick()。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');
    }
});
4

1 回答 1

1

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

你期望这有什么行为?你不能点击一个视图,它是一个对象,而不是一个 DOM 元素......虽然如果你真的想测试它是否有效,试着this.trigger('click')在你的行之后添加一个。

尽管如此,我还是不明白这里的意义何在。如果您使用onBackbone 的方法,您通常会尝试侦听 Backbone 事件(或自定义事件),而不是 UI 事件。

于 2013-04-18T15:49:23.873 回答