我正在使用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);
知道如何做到这一点吗?