Javascript-форум (https://javascript.ru/forum/)
-   Общие вопросы Javascript (https://javascript.ru/forum/misc/)
-   -   Как повесить несколько событий (https://javascript.ru/forum/misc/80245-kak-povesit-neskolko-sobytijj.html)

Сергей Ракипов 13.05.2020 17:12

Как повесить несколько событий
 
buttonNavigMobile.onclick = function(){
	bodyOverflow.classList.toggle(overflow);
}

buttonNavigMobile.onclick = function(){
	if (pageNavig.className === "page_navig"){
		pageNavig.classList.remove("page_navig_hide");
		pageNavig.classList.add("page_navig_show");
	}
	else if (pageNavig.className === "page_navig page_navig_show"){
		pageNavig.classList.remove("page_navig_show");
		pageNavig.classList.add("page_navig_hide");
	}
	else if (pageNavig.className === "page_navig page_navig_hide"){
		pageNavig.classList.remove("page_navig_hide");
		pageNavig.classList.add("page_navig_show");
	}
}


А что нельзя что ли на один элемент вот так повестить события ?
И можно или а главное нужно ли закончить вторую функцию не else if а просто else

рони 13.05.2020 18:01

Сергей Ракипов,
addEventListener

Сергей Ракипов 14.05.2020 17:08

Цитата:

Сообщение от рони (Сообщение 524196)
Сергей Ракипов,
addEventListener

это я понимаю, просто хотел узнать что такое написание это ошибка?

и обязательно ли заканчивать else

рони 14.05.2020 17:22

Цитата:

Сообщение от Сергей Ракипов
обязательно ли заканчивать else

нет

Сергей Ракипов 15.05.2020 09:27

Цитата:

Сообщение от рони (Сообщение 524264)
нет

Спасибо

Сергей Ракипов 16.05.2020 10:32

А как более правильнее писать


function overflow(){
bodyOverflow.classList.toggle("overflow_mobile");
}
buttonNavigMobile.addEventListener("click", overflow);

function navigHideShow(){
	if (pageNavig.className === "page_navig"){
		pageNavig.classList.remove("page_navig_hide");
		pageNavig.classList.add("page_navig_show");
	}
	else if (pageNavig.className === "page_navig page_navig_show"){
		pageNavig.classList.remove("page_navig_show");
		pageNavig.classList.add("page_navig_hide");
	}
	else if (pageNavig.className === "page_navig page_navig_hide"){
		pageNavig.classList.remove("page_navig_hide");
		pageNavig.classList.add("page_navig_show");
	}
}
buttonNavigMobile.addEventListener("click", navigHideShow);


создать две функции или

function navigHideShow(){
	if (pageNavig.className === "page_navig"){
		pageNavig.classList.remove("page_navig_hide");
		pageNavig.classList.add("page_navig_show");
	}
	else if (pageNavig.className === "page_navig page_navig_show"){
		pageNavig.classList.remove("page_navig_show");
		pageNavig.classList.add("page_navig_hide");
	}
	else if (pageNavig.className === "page_navig page_navig_hide"){
		pageNavig.classList.remove("page_navig_hide");
		pageNavig.classList.add("page_navig_show");
	}
	bodyOverflow.classList.toggle("overflow_mobile");

}
buttonNavigMobile.addEventListener("click", navigHideShow);


в одну функции засунуть.

рони 16.05.2020 11:10

Цитата:

Сообщение от Сергей Ракипов
как более правильнее

правильнее не использовать className в условии(есть classList.contains) и никогда не назначать click в click!!!

рони 16.05.2020 11:15

Сергей Ракипов,
function overflow(){
bodyOverflow.classList.toggle("overflow_mobile");
pageNavig.classList.toggle("page_navig_show");
}
buttonNavigMobile.addEventListener("click", overflow);

остальное лишнее.

Сергей Ракипов 16.05.2020 12:05

Цитата:

Сообщение от рони (Сообщение 524379)
правильнее не использовать className в условии(есть classList.contains)

classList.contains вроде как не может проверить наличие сразу двух классов, а className может или я не знаю синтаксис.
у меня скрипт проверяет наличие двух классов в элементе

Сергей Ракипов 16.05.2020 12:05

Цитата:

Сообщение от рони (Сообщение 524379)
и никогда не назначать click в click!!!

я там не правильно скопировал, сейчас поправил, и есть две функции и есть одна.


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