backbone.js<;按钮>;单击“不点火”
我们已经研究并尝试了所有我们能找到的,但不明白为什么按钮点击甚至不能触发。如果我们更改view render html颜色,它会显示更改,因此view render工作正常,但单击登录按钮->无。js控制台中没有显示错误。试用backbone.js<;按钮>;单击“不点火”,backbone.js,Backbone.js,我们已经研究并尝试了所有我们能找到的,但不明白为什么按钮点击甚至不能触发。如果我们更改view render html颜色,它会显示更改,因此view render工作正常,但单击登录按钮->无。js控制台中没有显示错误。试用 按钮#登录按钮和#登录按钮和登录按钮-全部为空。我们错过了什么?有什么需要帮忙的吗 SessionView = Backbone.View.extend({ el: ('#session'), initialize:function () {
按钮#登录按钮
和#登录按钮
和登录按钮
-全部为空。我们错过了什么?有什么需要帮忙的吗
SessionView = Backbone.View.extend({
el: ('#session'),
initialize:function () {
this.render();
},
render:function () {
if (!session) {
$(this.el).html(
"<button id=\"login_button\" class=\"login_button black\">"+
"Login"+
"</button>");
return this;
} else {
$(this.el).html(
"<button id=\"logout_button\" class=\"login_button black\">"+
"Logout</button>");
return this;
}
},
events: {
"click login_button" : "login",
"click logout_button": "logout"
},
login: function(){
alert("login");
console.log("login dialog");
//var loginView = new LoginView();
//loginView.render().showModal();
},
logout: function(){
alert("You Have Logged Out");
}
});
SessionView=Backbone.View.extend({
el:(‘会议’),
初始化:函数(){
这个。render();
},
渲染:函数(){
如果(!会话){
$(this.el).html(
""+
“登录”+
"");
归还这个;
}否则{
$(this.el).html(
""+
“注销”);
归还这个;
}
},
活动:{
“单击登录按钮”:“登录”,
单击注销按钮:“注销”
},
登录:函数(){
警报(“登录”);
log(“登录对话框”);
//var loginView=新loginView();
//loginView.render().showmodel();
},
注销:函数(){
警报(“您已注销”);
}
});
您应该在选择器中保留“#”:
events: {
"click #login_button" : "login",
"click #logout_button": "logout"
}
更新
您是否等待DOM准备在此主干视图类上使用new
?
您的按钮被html
调用更改这一事实意味着您可以这样做
一旦您检查了它,就必须使用this.$el
而不是$(this.el)
如果仍然不起作用,请搜索事件阻止并确保ID是唯一的
这非常简单,适用于您告诉我们的相同条件。“尝试使用[…]
\login\u按钮”
[…]什么都没有。”虽然您说您尝试使用了\login\u按钮
,但我有点同意lib3d,它应该可以工作。还有什么可能是错误的:1)您指定的el
不存在(我想不是这样)2)某些侦听器返回false或停止传播,因此您的回调没有被调用。另外,this.$el
=$(this.el)
。页面上是否有具有相同id的其他元素?尝试将事件绑定到类,看看会发生什么。