Javascript-форум (https://javascript.ru/forum/)
-   Общие вопросы Javascript (https://javascript.ru/forum/misc/)
-   -   Оптимизировать код (https://javascript.ru/forum/misc/83149-optimizirovat-kod.html)

ksa 19.10.2021 16:43

Цитата:

Сообщение от voraa
Так наверно должно быть

У Ubivectel там разные селекторы... ;)

Цитата:

Сообщение от Ubivectel
#scolor, .overlayo, #kide_x_s, #KIDE_mensaje_borrar

...
#KIDE_opciones, .overlayo, .KIDE_mostrar


ksa 19.10.2021 16:48

Цитата:

Сообщение от Ubivectel
Вроде ведь одно и то же, что не так делаю

Нет. Не одно и то же. :no:
У тебя всякий раз разный набор селекторов
#scolor -> #KIDE_opciones, .overlayo
.overlayo -> .KIDE_mostrar, .overlayo
#kide_x_s, #KIDE_mensaje_borrar -> .overlayo

ksa 19.10.2021 17:02

Автор не дает нам шанс проверить... :(
Предложу такой вариант.
let scolor = document.querySelectorAll('#scolor, .overlayo, #kide_x_s, #KIDE_mensaje_borrar').forEach(el => {
	const a = ['.overlayo']
	if (el.id === 'scolor') a.push('#KIDE_opciones')
	if (el.classList.contains('overlayo')) a.push('.KIDE_mostrar')
	const val = a.join(', ')
	el.onclick = function () {
		document.querySelectorAll(val).forEach(elem => elem.style.display = "none");
	};
})

Ubivectel 19.10.2021 17:07

Тоже не срабатывает, постараюсь более внятно выложить фрагменты кода, это не так просто, поскольку это разные модальные окна и их код раскидан по разнам файлам. Так-то сейчас работает все, но не могу в себе подавить бунт перфекционизма )))))

Ubivectel 19.10.2021 17:10

Проверить тут: https://noviy-kovcheg.ru/chat этот код закрывает модальные окна "цвет" и при правом клике на ник в окне сообщений

Ubivectel 19.10.2021 17:13

Цитата:

Сообщение от ksa (Сообщение 540807)
Автор не дает нам шанс проверить... :(
Предложу такой вариант.
let scolor = document.querySelectorAll('#scolor, .overlayo, #kide_x_s, #KIDE_mensaje_borrar').forEach(el => {
	const a = ['.overlayo']
	if (el.id === 'scolor') a.push('#KIDE_opciones')
	if (el.classList.contains('overlayo')) a.push('.KIDE_mostrar')
	const val = a.join(', ')
	el.onclick = function () {
		document.querySelectorAll(val).forEach(elem => elem.style.display = "none");
	};
})

Ураааа! Заработало! Всем спасибо товарищи, пошел "курить" как именно все работает. :dance:


Часовой пояс GMT +3, время: 22:26.