Используя ваш код, я отредактировал несколько битов, чтобы он работал на вас.
<!DOCTYPE html>
<html>
<body>
<h2 id='demo'>ELEMENT 1()</h2>
<button id="demo1" style="height:200px;width:200px">ELEMENT 2</button>
<p id="demo2">ELEMENT 3</p>
<script>
document.getElementById("demo").addEventListener("click", hide);
document.getElementById("demo1").addEventListener("click", hide);
document.getElementById("demo2").addEventListener("click", hide);
function hide(event) {// revealed passed event argument, part of addEventListener
var x = event.target; //Passed clicked element to variable
toggleVis(x);
setTimeout(function() {
toggleVis(x);// Inserted into annon function to pass x for reveal after
}, 2000);
}
function toggleVis(target) {
if (target.style.display === "none") {
target.style.display = "block";
} else {
target.style.display = "none";
}
}
</script>
</body>
</html>
Комментарии должны быть хорошими, не стесняйтесь спрашивать.
TLDR: addEventListener имеет объект события, связанный с функцией, которую он вызывает.Вы можете передать его в свою функцию и извлечь цель, на которую вы нажали, и обработать все остальное.Надеюсь, это поможет:)