2012-02-22 130 views
2

我試圖爲我的一個項目使用Backbone.js,但是在使用視圖事件時遇到了問題。Backbone.js事件沒有被解僱

HTML文件:

<html> 
    <head> 
     <script type="text/javascript" src="underscore-min.js"></script> 
     <script type="text/javascript" src="backbone-min.js"></script> 
     <script type="text/javascript" src="model.js"></script> 
    </head> 
    <body> 
     <div id="app"> 
     </div> 
    </body> 
</html> 

model.js代碼

window.onload = function() { 
    var MyModel = Backbone.Model.extend({ 
     defaults: { 
      name: "Test" 
     } 
    }); 

    var MyView = Backbone.View.extend({ 
     tagName: "li", 
     events: { 
      "click li": "Show" 
     }, 
     render: function() { 
      this.el.innerHTML = this.model.get("name"); 
     }, 
     Show: function() { 
      alert(this.model.get("name")); 
     } 
    }); 

    var model = new MyModel(); 
    var view = new MyView({model: model}); 
    view.render(); 

    document.getElementById("app").appendChild(view.el); 
} 

我沒有錯誤,但 「秀」 功能上沒有 「立」 點擊解僱。哪裏不對?

回答

2

問題是你將click事件綁定到元素的(不存在的)「li」子元素,而不是li元素本身。試試這個:

var MyView = Backbone.View.extend({ 
    tagName: "li", 
    events: { 
     "click": "Show" 
    }, 
    render: function() { 
     this.el.innerHTML = this.model.get("name"); 
    }, 
    Show: function() { 
     alert(this.model.get("name")); 
    } 
}); 
+0

明白了,謝謝:) – 2012-02-23 08:10:16