Ich arbeite mit backbone.js und haben folgende listView
für <ul>
Element und eine separate tabView
für dynamische <li>
Element. In der Rendermethode von listView
erstelle ich eine neue tabView
und diese el
an listView
el
anhängen.Hinzufügen von dynamischen Bootstrap-Registerkarte vor der vorhandenen Registerkarte "Addition"
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();
}
Das ist in Ordnung und wie erwartet funktioniert.
Um eine neue Registerkarte dynamisch hinzuzufügen, habe ich eine einzelne li
Element am Anfang, wenn der Benutzer klickt auf li
Element nur neue Registerkarte Erstellung geschieht.
Nun, was ich brauche, ist die neu erstellen Registerkarte vor li
+ Element hinzufügen. Derzeit werden alle neuen Registerkarten erst nach this
+ element hinzugefügt.
Folgendes ist der HTML-Code des <ul>
Tags als Referenz.
<div id="test">
<ul class="nav nav-tabs ">
<li><a href="#" class="add-newTab">+</a></li>
</ul>
</div>
ich ausprobiert listView
Verfahren wie unten machen zu ändern, aber das funktioniert nicht. Es fügt nur die neue Registerkarte über (+) li
Element selbst hinzu.
tabView.render();
$(this.el).find(".add-newTab").before(tabView.el);
Eine Idee, wie dies getan werden kann?