我正在與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);
任何想法如何做到這一點?