var ScrollableView = View.extend({ events: { "load img": "deferRefresh", }, deferScrollToTop: function(){ this.scrollPosition = 0 setTimeout(this.scrollToTop.bind(this), 0) }, scrollPosition: 0, resetScroll: function(){ this.scrollPosition = 0 }, saveScroll: function(){ this.scrollPosition = this.scroller.y }, restoreScroll: function(){ setTimeout(function(){ this.scroller.scrollTo(0, this.scrollPosition) }.bind(this), 0) }, refreshScroller: function(){ this.scroller.refresh() clearTimeout( this.scrollerRefreshTimeout ) }, scrollerRefreshTimeout: null, deferRefresh: function(){ clearTimeout( this.scrollerRefreshTimeout ) this.scrollerRefreshTimeout = setTimeout(this.refreshScroller.bind(this)) }, scrollToTop: function(){ this.scroller.refresh() this.scroller.scrollTo(0, 0) }, })