2012-06-28 39 views
0

這裏是我使用它創建樹結構的代碼compositeView代碼片段。骨幹牽線木偶複合視圖沒有觸發事件

var TreeView = Backbone.Marionette.CompositeView.extend({ 

    template: "#filterTemplate", 
    className:"menuItem", 
    tagName: "ul", 

    initialize: function(){ 
     this.collection = this.model.type; 
     counter=0; 
    }, 

    events: { 
     'click .menuItem': 'show' 
    }, 

    show: function(event) { 
     var target = $(event.target); 
     console.log(target); 

    }, 

    appendHtml: function(collectionView, itemView){ 
     // ensure we nest the child list inside of 
     // the current list item 
     $(itemView.el).attr("id","innerMenu"+counter); 
     $(itemView.el).attr("class","innerMenu"); 
     collectionView.$("li:first").append(itemView.el); 
     counter++; 
    } 
}); 

樹呈現完美,但事件沒有被綁定或不被解僱。 Show方法從不被調用。我正在使用Backbone.Marionette v0.9.1

回答

6

您已將視圖本身設置爲使用menuItem css類進行渲染。在任何骨幹視圖(這不是專用於Marionette)中,如果您想直接處理視圖元素上的事件(不是其中一個子視圖),則可以指定沒有選擇器的事件。

在你的情況,這將是:

events: { 
    "click": "show" 
} 

這將配置當你點擊這個視圖的HTML的任何部分視圖的el直接「點擊」事件和show方法將被調用。

+0

謝謝derick..it是有幫助的:)我想知道如果我只能添加事件到主菜單而不是子菜單項。 – tousif