我正在使用backbone.js,并且有以下listView元素<ul>和一个单独tabView的动态<li>元素。在 的渲染方法中listView,我正在创建一个新的tabView并将其附加el到listView el.
var listView = Backbone.View.extend({
//<ul> element for tabs
el: '.nav-tabs',
render: function(model) {
var tabView = new TabView({ model: model });
tabView.render();
$(this.el).append(tabView.el);
}
var TabView = Backbone.View.extend({
//create <li> element to hold each tab
tagName: "li",
className: "currentTab ",
render() {
var html = this.template(this.model.attributes);
$(this.el).append(html);
//creates new div for tab content
var tabContent = new TabContentView({ model: this.model });
tabContent.render();
}
这很好,可以按预期工作。
要动态添加新选项卡,我在开始时有一个li项目,因此当用户单击该li项目时,只会创建新选项卡。
现在我需要在li+ 元素之前添加新创建的选项卡。目前,所有新标签仅在this+ 元素之后添加。
以下是<ul>标签的html供参考。
<div id="test">
<ul class="nav nav-tabs ">
<li><a href="#" class="add-newTab">+</a></li>
</ul>
</div>
我尝试listView像下面这样更改渲染方法,但这不起作用。li相反,它只是在 (+)元素本身的顶部添加新选项卡。
tabView.render();
$(this.el).find(".add-newTab").before(tabView.el);
知道如何做到这一点吗?