繁体   English   中英

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

[英]How to trigger / bind custom events in Backbone.js views?

我有一个Backbone View,它使用iScroll来实现幻灯片放映。

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

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);
    }

});

它可能不是很明显,但backbone.js视图中的event属性仅用于DOM事件。 自定义事件应该像James Brown上面提到的那样受到约束。

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

但是您在View对象上触发onScrollend事件,而不是元素。

所以你可能想说$(self.el).trigger('onScrollEnd'); 相反,或者可能直接调用函数: self.scrollEnd()

您应该直接或在init中调用该函数,添加:

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

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM