backbone.js<;按钮>;单击“不点火”

backbone.js<;按钮>;单击“不点火”,backbone.js,Backbone.js,我们已经研究并尝试了所有我们能找到的,但不明白为什么按钮点击甚至不能触发。如果我们更改view render html颜色,它会显示更改,因此view render工作正常,但单击登录按钮->无。js控制台中没有显示错误。试用 按钮#登录按钮和#登录按钮和登录按钮-全部为空。我们错过了什么?有什么需要帮忙的吗 SessionView = Backbone.View.extend({ el: ('#session'), initialize:function () {

我们已经研究并尝试了所有我们能找到的,但不明白为什么按钮点击甚至不能触发。如果我们更改view render html颜色,它会显示更改,因此view render工作正常,但单击登录按钮->无。js控制台中没有显示错误。试用

按钮#登录按钮
#登录按钮
登录按钮
-全部为空。我们错过了什么?有什么需要帮忙的吗

  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的其他元素?尝试将事件绑定到类,看看会发生什么。