主干牵线木偶复合视图不发射事件

时间:2012-06-28 09:45:11

标签: backbone.js marionette

以下是我正在创建树结构的代码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

1 个答案:

答案 0 :(得分:6)

您将视图本身设置为使用menuItem css类进行渲染。在任何骨干视图中(这不是特定于Marionette),如果您想直接处理视图元素上的事件(而不是其中一个子元素),则指定没有选择器的事件。

在你的情况下,它将是:

events: {
    "click": "show"
}

这将直接使用“click”事件配置视图的el,并且当您单击此视图的HTML的任何部分时,将调用show方法。