Показать сообщение отдельно
  #13 (permalink)  
Старый 17.04.2016, 01:00
Аватар для Alexander Belov
Профессор
Отправить личное сообщение для Alexander Belov Посмотреть профиль Найти все сообщения от Alexander Belov
 
Регистрация: 12.03.2015
Сообщений: 173

рони,
дописал код на добавление / удаление вкладок. По итогу получается, что при удалении всё равно нужно выборку делать, потому подойдёт тот код, что Вы посоветовали в посте №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
Ответить с цитированием