我有一个包含复杂视图的页面,我想要它是可链接的。
示例:当某个面板打开时,我将网址更改为www.example.com/#panel-1。
这很好。
我想使用Backbone充当普通事件处理程序而不更改路由或重新加载。我有:
var ApplicationView = Backbone.View.extend({
el: $('body'),
events: {
'click #comingsoon': 'displayComingSoon'
},
displayComingSoon: function(){
//some jquery code to add or remove classes
}
});
但我的问题是在执行此代码之后,页面重新加载并删除了类。我是否必须指定使用骨干进行事件处理的路由?我希望URL不会因此事件而改变。
答案 0 :(得分:1)
返回false是Javascript取消事件默认操作的方法之一(有关详细信息,请参阅this question和this other question)。例如,链接上的单击事件会导致浏览器导航到该链接,但如果在事件处理程序中返回false,则会取消此默认行为。
因此,您可以将其应用于骨干视图中的事件处理程序:
var ApplicationView = Backbone.View.extend({
el: $('body'),
events: {
'click #comingsoon': 'displayComingSoon'
},
displayComingSoon: function(){
//some jquery code to add or remove classes
return false;
}
});