рони,
дописал код на добавление / удаление вкладок. По итогу получается, что при удалении всё равно нужно выборку делать, потому подойдёт тот код, что Вы посоветовали в посте №11.
Получается следующее:
//Create a new Tab + Content
var tabs = document.querySelector("#tabs"),
defaultDiv = document.querySelector("#defaultDiv"),
ok = document.querySelector("#ok"),
cancel = document.querySelector("#cancel"),
name = document.querySelector("#name"),
note = document.querySelector("#note"),
activeTab = document.getElementsByClassName("tab active"),
activeDiv = document.getElementsByClassName("content active"),
tabsArr = [],
contentArr = [];
tabsArr и
contentArr - пустые массивы для добавления новых вкладок и нового контента соответственно.
//OK button onclick
ok.onclick = function createTab(){
var newTab = document.createElement("li"),
tabSpan = document.createElement("span"),
newContent = document.createElement("div");
activeTab.length ? activeTab[0].classList.remove("active") : 0;
activeDiv.length ? activeDiv[0].classList.remove("active") : 0;
newTab.innerHTML = name.value;
if (newTab.innerHTML == "") {
alert ("Gimme a name!");
showBgr();
}
else {
tabs.appendChild(newTab);
newTab.classList.add("tab", "item", "active");
tabs.insertBefore(newTab, defaultTab);
tabSpan.innerHTML = "✕";
newTab.appendChild(tabSpan);
tabSpan.classList.add("removeTab");
defaultDiv.appendChild(newContent);
newContent.innerHTML = note.value;
newContent.classList.add("content", "item", "active");
tabsArr.push(newTab);
contentArr.push(newContent);
}
foldPopup();
};
Перед закрывающей скобкой
else мы добавляем новую созданную вкладку + контент в соответствующие массивы.
Теперь код на удаление вкладки + контента по клику
//Remove tab
document.getElementsByClassName("removeTabs").onclick = function removeTab(tabsArr, contentArr) {
return function() {
tabsArr.forEach(function(el) {
el.parentNode && el.parentNode.removeChild(el);
});
}
contentArr.forEach(function(el) {
el.parentNode && el.parentNode.removeChild(el);
});
};
Проблема: такой код не работает, консоль не выводит ошибку.
Прошу помочь разобраться.
Ссылка на
JS Bin