그래서 eventlisteners 설정이 모두 동일한 변수로 작동하는 문제가 있습니다. 이는 같은 모습입니다 : 나는 이벤트 리스너를 설정 마지막 두 줄에서eventlistener를 고유하게 만드시겠습니까?
// Prepare tooltips
for (var i = 0; i < document.getElementsByClassName("tooltip").length; i++) {
var tooltip = document.getElementsByClassName("tooltip")[i];
var input = document.getElementsByName(tooltip.id.substr(8))[0];
var offsetTop = 0;
var tmp = input;
while (tmp != null) {
offsetTop += tmp.offsetTop;
tmp = tmp.offsetParent;
}
offsetTop -= 130;
var offsetLeft = (input.offsetParent.offsetLeft + input.scrollWidth) + 50;
tooltip.innerHTML += "<div class='corner'></div>";
tooltip.style.top = offsetTop + "px";
tooltip.style.left = offsetLeft + "px";
input.addEventListener("focus", function() { document.getElementById(tooltip.id).style.display = "block"; });
input.addEventListener("blur", function() { document.getElementById(tooltip.id).style.display = "none"; });
}
. 그래서 언제든지 입력란에 초점을 맞출 때마다 어느 tooltip.id가 항상 같은지 상관하지 않습니다. input.id를 모든 루프마다 다르게 확인했습니다.
[루프 추가 '클릭'이벤트 리스너 (가능 중복 http://stackoverflow.com/questions/8909652/adding-click-event ENDS -listeners-in-loop) –