먼저 스키밍 코드를 사용하십시오.JS에서 addEventListener가 예상대로 작동하지 않습니다.
된 index.html은 다음과 같습니다
<html><head><title>Home</title><script src="js/script.js"></script></head>
<body onLoad="init()">
<ul class="sup" id="sup">
<li class="supitem">
<a href="#" class="supcont">Home<div class="v"></div></a>
<ul class="sub">
<li class="subitem"><a href="#" class="subcont">Home1</a></li>
<li class="subitem"><a href="#" class="subcont">Home2</a></li>
<li class="subitem"><a href="#" class="subcont">Home3</a></li>
</ul>
</li>
<li class="supitem">
<a href="#" class="supcont">Blog<div class="v"></div></a>
<ul class="sub">
<li class="subitem"><a href="#" class="subcont">Blog1</a></li>
<li class="subitem"><a href="#" class="subcont">Blog2</a></li>
<li class="subitem"><a href="#" class="subcont">Blog3</a></li>
</ul>
</li>
</ul>
</body>
</html>
script.js이다 : 나는 모든 하위 메뉴 '가시성 전환 할 supermenu를 누를 때 내가하고 싶은 무엇
function init() {
var sky = 0;
var sup = document.getElementById("sup");
var supitems = sup.getElementsByClassName("supitem");
for (var i = 0, ln = supitems.length; i < 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 > 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");
}
입니다. 그러나 나는 내가 실수 한 곳을 모른다. Supmenu0을 누르면 Supmenu1의 하위 메뉴가 토글되고 Supmenu1의 하위 메뉴는 토글되지 않습니다. 미리 감사드립니다.
P. 문제는 addEventListener에 있다고 생각합니다.
감사합니다. BTW 방금 폐쇄가 무엇인지 배웠습니다. 여기에 링크를 남겨 두는 것이 좋습니다. http://stackoverflow.com/questions/111102/how-do-javascript-closures-work :) –