我有一个使用iScroll来实现幻灯片演示的Backbone View。
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);
}
});
答案 0 :(得分:25)
可能不太明显,但backbone.js视图中的event
属性仅用于DOM事件。自定义事件应绑定为James Brown mentioned above。
答案 1 :(得分:24)
你的onScrollEnd事件绑定到视图的顶部元素;当视图的HTML元素收到onScrollEnd事件时,将调用scrollEnd。
但是您在View对象上触发onScrollend事件,而不是元素。
所以你可能想要说$(self.el).trigger('onScrollEnd');
,或者直接调用函数:self.scrollEnd()
。
答案 2 :(得分:18)
你应该直接或在init中调用该函数,添加:
self.bind('onScrollEnd', self.scrollEnd);