Здравствуй многоуважаемый олл
видимо я перегрелся или переработал, но не могу решить скорее всего простую задачку, прошу о помощи
дано: несколько элементов, которым надо добавить событие, по которому вызывается функция с разными параметрами.
проблема: если перечислять каждый элемент с его параметром для функции, всё работает, но при перечислении в цикле все элементы срабатывают с последним параметром.
HTML:
<style> div {width:50px; height:50px; margin:10px; background:#036} </style>
<div id="a1"></div>
<div id="a2"></div>
<div id="a3"></div>
<input type="button" value="Add Event" onclick="add_event()" />
javascript
:
function add_event()
{
for(n=1; n<4; n++)
{
document.getElementById('a'+n).onmouseover = function(){ alert(n); }
}
//document.getElementById('a1').onmouseover = function(){ alert(1); }
//document.getElementById('a2').onmouseover = function(){ alert(2); }
//document.getElementById('a3').onmouseover = function(){ alert(3); }
}
если расслешить три строчки в функции, то всё работает правильно, а так алертает цифру 4. очевидно javascript запоминает последнее значение переменной в которой передаётся параметр для функции и обращается к нему для всех элементов.