Javascript 如何在Backbone.js视图中触发/绑定自定义事件?

Javascript 如何在Backbone.js视图中触发/绑定自定义事件?,javascript,events,backbone.js,Javascript,Events,Backbone.js,我有一个主干视图,用于实现幻灯片放映 iScroll发布一个onScrollEnd事件,但我似乎无法在视图中绑定/订阅它: App.Views.Scroller = Backbone.View.extend({ events: { 'onScrollEnd' : 'scrollEnd' }, initialize: function(){ var self = this; this.scroller = new iScr

我有一个主干视图,用于实现幻灯片放映

iScroll发布一个
onScrollEnd
事件,但我似乎无法在视图中绑定/订阅它:

App.Views.Scroller = Backbone.View.extend({

    events: {
        'onScrollEnd' : 'scrollEnd'
    },

    initialize: function(){
        var self = this;
        this.scroller = new iScroll('content-scroller', {
            onScrollEnd: function() {  
                self.trigger('onScrollEnd');
            }
        });     
    },

    scrollEnd: function(e){
        // never called :(
        console.log(e);
    }

});

onScrollEnd事件绑定到视图的顶部元素;当视图的HTML元素收到onScrollEnd事件时,将调用scrollEnd

但是您正在视图对象而不是元素上触发onScrollend事件


所以您可能想说
$(self.el).trigger('onScrollEnd')
或者直接调用函数:
self.scrollEnd()
您应该直接调用函数,或者在init中添加以下内容:

self.bind('onScrollEnd', self.scrollEnd);

这可能不明显,但backbone.js视图中的
event
属性仅用于DOM事件。自定义事件应绑定为。

我还尝试使用主干扩展scroller对象。events我只是直接调用了函数。似乎不符合这一点,但它是有效的:)或者更详细的
self.$el.trigger('onScrollEnd')