Страницы

Поиск по вопросам

воскресенье, 7 апреля 2019 г.

объединить 4 функции js

Как правильно сделать из этих 4-х функций одну?
А также необходимо заставить их работать при нажатии кнопки(теги button и input) в html с помощью атрибута "onclick=function()". Не могу понять как их правильно связать.
function showHideVysotskiy() { var hideShow = document.getElementById('vysotskiy'); if (hideShow.style.display === "none"){ hideShow.style.display = "inline"; }else{ hideShow.style.display = "none"; } }; function showHideDdt() { var hideShow = document.getElementById('ddt'); if (hideShow.style.display === "none"){ hideShow.style.display = "inline"; }else{ hideShow.style.display = "none"; } }; function showHideKeno() { var hideShow = document.getElementById('keno'); if (hideShow.style.display === "none"){ hideShow.style.display = "inline"; }else{ hideShow.style.display = "none"; } }; function showHideCinemaSongs() { var hideShow = document.getElementById('cinemaSongs'); if (hideShow.style.display === "none"){ hideShow.style.display = "inline"; }else{ hideShow.style.display = "none"; } };
Я пробовал самостоятельно как-то так, но не понимаю как обозначить номер переменной i при исполнении "onclick="function()"" :
var x = { vysotskiy: document.getElementById('vysotskiy'), ddt: document.getElementById('ddt'), keno: document.getElementById('keno'), cinemaSongs: document.getElementById('cinemaSongs') }; var i = x.length; function showHide() { if (x[i].style.display === "none"){ x[i].style.display = "inline"; }else{ x[i].style.display = "none"; } };


Ответ

Так как функции отличаются только элементом, id его можно передать через параметр
function showHide(hideShowId) { var hideShow = document.getElementById(hideShowId) if (hideShow.style.display === "none"){ hideShow.style.display = "inline"; }else{ hideShow.style.display = "none"; } };
и вызывать потом
onclick='showHide("ddt")'

Комментариев нет:

Отправить комментарий