私はeventlisteners私はセットアップがすべて同じ変数で動作するように起こる問題があります。 これはどのように見えるかです:私はイベントリスナーを設定する最後の2行でイベントリスナーを一意にするには?
// 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) –