Tady je kód. Položky v seznamech se mění, vytvářejí se nové seznamy a některé seznamy se zase nezobrazují vždy, proto je v konstruktoru třídy MyClass volání funkce init();
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<html>
<head>
<script>
function init() {
var elements;
elements = document.querySelectorAll('#menu-1 > li, #menu-2 > li, #menu-3 > li');
const onClick = ( event ) => new MyClass ( event . target ) ;
for (let element of elements) {
element.removeEventListener('click', onClick);
} ;
for (let element of elements) {
element.addEventListener('click', onClick);
} ;
} ;
class MyClass {
constructor (event){
console.log(event.id);
init();
} ;
} ;
</script>
</head>
<body onload="init()">
<ul id="menu-1">
<li id="m1">M1</li>
<li id="m2">M2</li>
<li id="m3">M3</li>
</ul>
<ul id="menu-2">
<li id="mm1">MM1</li>
<li id="mm2">MM2</li>
<li id="mm3">MM3</li>
</ul>
<ul id="menu-3">
<li id="mmm1">MMM1</li>
<li id="mmm2">MMM2</li>
<li id="mmm3">MMM3</li>
</ul>
</body>
</html>