2012-07-20 154 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