以下按钮单击仅适用于页面加载,而不适用于路由后。 1)显示默认页面 2)单击“单击此处”按钮(此工作) 3)单击其他按钮进行路由(无需重新加载页面,清除内容,并创建新视图提供选项以路由回默认页面) 4)单击选项以返回默认值。 5)没有重新加载再次重绘defult页面。 6)点击“点击此处”按钮(这不起作用)
这是代码
var LPRouter = Backbone.Router.extend({
initialize: function (options) {
this.pageContent = $('#pageContent');
},
routes: {
'AA': 'routerMethod',
'': 'defaultMethod'
},
defaultMethod: function () {
//TODO: Set page title.
var self = this;
self.pageContent.empty();
if (!self.someView) {
self.someView = new SomeView();
self.someView.render();
}
self.pageContent.append(self.someView.el);
/*
Create a view with some link or button which will redirect to routerMethod.
*/
},
routerMethod : function() {
this.pageContent.empty();
/*
Create a view with some link or button which will redirect to defaultMethod.
*/
}
});
var SomeView = Backbone.View.extend({
tagName: "div",
className: "someclass",
initialize: function (options) {
},
hammerEvents: {
'tap .innerclass': 'someMethod'
},
someMethod: function (e) {
alert("did you click me?");
},
render: function () {
this.$el.append("<div class='innerclass'><input type='button' value='click here'/></div>");
return this;
}
});
答案 0 :(得分:1)
每次渲染函数都会创建一个新按钮,因此绑定到原始按钮元素的事件不会绑定到新的按钮元素。您可以使用delegateEvents()方法重新绑定事件哈希 - http://backbonejs.org/#View-delegateEvents