2012-07-20 82 views
2

我正在使用以下视图。问题在于#likeCar的点击事件不会被解雇。我在这里做错了什么?视图事件不会触发

window.LikeView = Backbone.View.extend({ 
    events: { 
     "click #likeCar":"likeCar" 
    }, 

    initialize : function(){ 
     this.el = $("#liker"); 
     this.template = _.template($('#like-template').html()); 
     //_.bindAll(this,"render"); 
     this.model.bind("change", this.render, this); 
    }, 

    render : function (eventName) { 
     $(this.el).html(this.template(this.model.toJSON())); 
     return this; 
    }, 

    likeCar : function(e) { 
     console.log("like car") 
    } 
}); 

模板:

<script type="text/template" id="like-template"> 
<a id="likeCar" class="btn btn-mini" href="#">Like</a> 

+0

多久正在使用这个观点?你的模板读取就好像它只会创建一次,因为该项目有一个ID。如果你在一个页面上创建了多个这样的项目,我肯定会发生奇怪的事情。 – JayC 2012-07-20 14:33:56

回答

1

尝试包括这一行视图定义:

el: $('#liker') 

而不是在初始化方法进行初始化。

似乎在这里小提琴的工作:

http://jsfiddle.net/xqREW/6/

+0

骨干文档不会这样读取。这些事件应该绑定到视图根节点上,以便委派处理子节点的事件。http://documentcloud.github.com/backbone/#View-delegateEvents – JayC 2012-07-20 14:39:39

+0

你是对的,让我编辑我的答案。 – Yasser 2012-07-20 14:55:11