我正在与backbone.js一起工作,并且有关于<ul>
元素的以下listView
元素和用于动态<li>
元素的单独tabView
。在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);
任何想法如何做到这一点?