骨干点击事件突破

我使用Node作为后端在Backbone中构build应用程序。 作为应用程序的一部分,我正在处理我的视图上的点击事件。 一个例子是这样的:

window.MyView = Backbone.View.extend({ tagName: 'section', className: 'calls', events: { 'click a.first': 'gotoFirst', 'click a.prev': 'gotoPrev', 'click a.next': 'gotoNext', 'click a.last': 'gotoLast', 'click a.page': 'gotoPage' }, 

当我第一次加载视图,并点击一切正常工作(点击事件得到正常处理)。 但是,如果我导航到新视图,然后返回到第一个视图,则单击事件将被中断。

通过导航到新的视图,我的意思是我做了这样的事情:

 $container.empty(); $container.append(window.myNewView.render().el); 

然后我回去这样回去:

 $container.empty(); $container.append(window.myView.render().el); 

但是当我放弃这个观点时,我的点击事件就被打破了。 我怎样才能解决这个问题? 提前致谢!

当你通过调用.empty()移除视图时,你正在销毁一半的DOM事件。 但自动重新显示视图时不会重新连接。

你必须跳过箍重新附加他们。 读这个:

http://tbranyen.com/post/missing-jquery-events-while-rendering

更好的答案是不要重新使用视图实例。 每次需要显示视图时创build一个新的视图实例。