Note that there are some explanatory texts on larger screens.

plurals
  1. POaddEventListener in JS not working as expected
    text
    copied!<p>Firstly skim codes please.</p> <p>index.html is :</p> <pre><code>&lt;html&gt;&lt;head&gt;&lt;title&gt;Home&lt;/title&gt;&lt;script src="js/script.js"&gt;&lt;/script&gt;&lt;/head&gt; &lt;body onLoad="init()"&gt; &lt;ul class="sup" id="sup"&gt; &lt;li class="supitem"&gt; &lt;a href="#" class="supcont"&gt;Home&lt;div class="v"&gt;&lt;/div&gt;&lt;/a&gt; &lt;ul class="sub"&gt; &lt;li class="subitem"&gt;&lt;a href="#" class="subcont"&gt;Home1&lt;/a&gt;&lt;/li&gt; &lt;li class="subitem"&gt;&lt;a href="#" class="subcont"&gt;Home2&lt;/a&gt;&lt;/li&gt; &lt;li class="subitem"&gt;&lt;a href="#" class="subcont"&gt;Home3&lt;/a&gt;&lt;/li&gt; &lt;/ul&gt; &lt;/li&gt; &lt;li class="supitem"&gt; &lt;a href="#" class="supcont"&gt;Blog&lt;div class="v"&gt;&lt;/div&gt;&lt;/a&gt; &lt;ul class="sub"&gt; &lt;li class="subitem"&gt;&lt;a href="#" class="subcont"&gt;Blog1&lt;/a&gt;&lt;/li&gt; &lt;li class="subitem"&gt;&lt;a href="#" class="subcont"&gt;Blog2&lt;/a&gt;&lt;/li&gt; &lt;li class="subitem"&gt;&lt;a href="#" class="subcont"&gt;Blog3&lt;/a&gt;&lt;/li&gt; &lt;/ul&gt; &lt;/li&gt; &lt;/ul&gt; &lt;/body&gt; &lt;/html&gt; </code></pre> <p>script.js is :</p> <pre><code>function init() { var sky = 0; var sup = document.getElementById("sup"); var supitems = sup.getElementsByClassName("supitem"); for (var i = 0, ln = supitems.length; i &lt; ln; i++) { var supconts = supitems[i].getElementsByClassName("supcont"); var subs = supitems[i].getElementsByClassName("sub"); var supcont = supconts[0]; supcont.innerHTML = "SuperMenu"+i; if (subs.length &gt; 0) { var sub = subs[0]; supcont.addEventListener("click",function() { toggleVisibility(sub); }); supcont.style.background = "#"+sky+sky+sky; sub.style.background = "#"+sky+sky+sky; sky += 4; } } } function toggleVisibility(object) { object.style.visibility = (object.style.visibility == "hidden" ?"visible" :"hidden"); } </code></pre> <p>What I would like to do is when I press supermenu all sub-menus' visibility to be toggled. But I don't know where I have made a mistake. When I press Supmenu0, submenus of Supmenu1 are toggled, not submenus of Supmenu1. Thanks in advance.</p> <p>P.S. I think the problem is in addEventListener.</p>
 

Querying!

 
Guidance

SQuiL has stopped working due to an internal error.

If you are curious you may find further information in the browser console, which is accessible through the devtools (F12).

Reload