2012-05-11 24 views
1

我正在減速獲得backbone.js的掛起,但我遇到了一些綁定。 我已經成功地創建一個視圖,我能委派事件中的DOM元素,但我似乎能在以下方面在backbone.js視圖中使用當前的jQuery元素

Chrono.Views.Sidebar = Backbone.View.extend({ 
    //Page wrapper 
    el:"#wrapper", 

    //Delegate events to elements 
    events : { 
     "click .push-to":"loadPage" 
    }, 
    loadPage: function(event) { 
     var url = $(this).attr("href"); 
     alert(url); 
     event.preventDefault(); 
    } 
}); 

click事件就是使用jQuery的「$(this)」但截取這一行「var url = $(this).attr(」href「);」

回答

3

loadPage的情況下,this已被綁定到您的Chrono.Views.Sidebar實例。但是,您可以通過event.currentTarget獲取該事件觸發的DOM元素。如果您更新的功能,看起來像這樣它應該工作:

loadPage: function(event) { 
    var url = $(event.currentTarget).attr("href"); 
    alert(url); 
    event.preventDefault(); 
} 
2

在骨幹網,這是必然的觀點,但你仍然可以得到被點擊通過檢查event.target或元素的該元素事件綁定使用event.currentTarget。

在這個問題 Backbone.js Event Binding

0

this看看被綁定到視圖,這樣你就可以直接訪問View.$el屬性。

loadPage: function(event) { 
    var url = this.$el.find('.push-to').attr('href'); 
    alert(url); 
    event.preventDefault(); 
} 
相關問題