1

我在这里修改了list.html示例https://github.com/tbranyen/backbone.layoutmanager/blob/master/examples/list.html

http://jsfiddle.net/qhoc/nQJz6/

如果您查看 Firebug,您会发现 和 之间有一个额外div的。olli

li我知道我可以通过移出模板并tagName: 'li'Items视图中使用来摆脱它。但这意味着我必须在某些地方更改我的代码。此外,我更喜欢li在模板中保留设计过程的一致性

div如何在不修改模板的情况下摆脱这种情况?

4

1 回答 1

2

覆盖该partial函数并执行以下操作jQuery#find

Backbone.LayoutManager.configure({
    partial: function(root, name, el, append) {
        // If no selector is specified, assume the parent should be added to.
        var $root = name ? $(root).find(name) : $(root);

        // Use the append method if append argument is true.
        // Set the element to append to be the first child.
        this[append ? "append" : "html"]($root, $(el).children().first());
    }
});

可以在全局(以上)或本地实例上覆盖此方法。

您还需要调整afterRender以使用新元素:

Backbone.LayoutView.extend({
    afterRender: function() {
        this.setElement(this.el.firstChild);
        this.delegateEvents();
    }
});

更多信息在这里:http ://tbranyen.github.com/backbone.layoutmanager/#configuration/defaults

于 2012-10-25T05:24:24.773 回答