Backbone.js backbone.hammer.js,事件不会再次触发
以下按钮单击仅在页面加载时有效,而不是在路由之后。 1) 显示默认页面 2) 单击“单击此处”按钮(此功能正常) 3) 单击其他按钮进行路由(不重新加载页面,清除内容,并创建一个新的view give选项以路由回默认页面) 4) 单击该选项以移回默认设置。 5) 如果不重新加载,请重新绘制默认页面。 6) 单击“单击此处”按钮(此按钮无效) 这是密码Backbone.js backbone.hammer.js,事件不会再次触发,backbone.js,backbone-views,backbone-events,backbone-routing,hammer.js,Backbone.js,Backbone Views,Backbone Events,Backbone Routing,Hammer.js,以下按钮单击仅在页面加载时有效,而不是在路由之后。 1) 显示默认页面 2) 单击“单击此处”按钮(此功能正常) 3) 单击其他按钮进行路由(不重新加载页面,清除内容,并创建一个新的view give选项以路由回默认页面) 4) 单击该选项以移回默认设置。 5) 如果不重新加载,请重新绘制默认页面。 6) 单击“单击此处”按钮(此按钮无效) 这是密码 var LPRouter = Backbone.Router.extend({ initialize: function (option
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;
}
});
var LPRouter=Backbone.Router.extend({
初始化:函数(选项){
this.pageContent=$(“#pageContent”);
},
路线:{
“AA”:“路线方法”,
'''defaultMethod'
},
defaultMethod:函数(){
//TODO:设置页面标题。
var self=这个;
self.pageContent.empty();
如果(!self.someView){
self.someView=新的someView();
self.someView.render();
}
self.pageContent.append(self.someView.el);
/*
创建一个带有链接或按钮的视图,该链接或按钮将重定向到routerMethod。
*/
},
路由方法:函数(){
this.pageContent.empty();
/*
创建一个带有链接或按钮的视图,该链接或按钮将重定向到defaultMethod。
*/
}
});
var SomeView=Backbone.View.extend({
标记名:“div”,
类名:“someclass”,
初始化:函数(选项){
},
锤击事件:{
“tap.innerclass”:“someMethod”
},
方法:函数(e){
警报(“你点击我了吗?”);
},
渲染:函数(){
本.$el.追加(“”);
归还这个;
}
});
渲染函数每次都会创建一个新按钮,因此绑定到原始按钮元素的事件不会绑定到新按钮元素。您可以使用delegateEvents()方法重新绑定事件哈希-,但我正在检查视图对象是否已存在,因为我正在创建新对象。为什么要委托?我正在使用hammerEvents。我计划删除视图并重新渲染它。