Установить события через цикл
Задача:
Есть список <input>-ов. Нужно после загрузки документа присвоить всем инпутам события "onclick", "onmouseover", "onmouseout". Что только не пробовал - не получается в цикле сделать. Присваивает последнему элементу из цикла. Подскажите: 1. Можно ли вообще такое сделать? 2. Каким методом нужно присваивать события? Спасибо. |
|
Спасибо, прочитал ещё раз. Сразу не смог разглядеть проблему) Пойду ещё поковыряюсь... Потом отпишу, что да как.
|
Ребята, нужен хелп.
Вроде во всём разобрался, всё понятно, сделал так: function StylisedRadio() { var wrapper = document.getElementById('StylisedRadioWrapper'); var array = wrapper.getElementsByTagName('input'); for (var i = 0; i<array.length; i++) { var el = array[i]; // input var neighbor = el.nextSibling; // label var child = neighbor.firstChild; // span el.className = 'hide-input'; if(el.checked) { child.className = 'radio-on'; (function(i){ neighbor.onmouseover = function () { array[i].nextSibling.firstChild.className = 'radio-on-over'; }; neighbor.onmouseout = function () { array[i].nextSibling.firstChild.className = 'radio-on'; }; })(i); } else { child.className = ''; (function(i){ neighbor.onmouseover = function () { array[i].nextSibling.firstChild.className = 'radio-off-over'; }; neighbor.onmouseout = function () { array[i].nextSibling.firstChild.className = ''; }; neighbor.onclick = function () { array[i].checked = 'true'; StylisedRadio (); }; })(i); }; }; }; В в Opera_9.50, Opera_9.60, Opera_9.64 и Opera_10.10 не работает. Не могу понять почему? O_o Где я накосячил? Для большей юзабельности - ссылка: http://tarik.kasperovich.ru/test/index.html Спасибо. |
var idList = ['id1', 'id2', 'id3']; for (var i = 0; i < idList; i++) { node = document.getElementById(idList[i]); node.onclick = fn, node.onmouseover = fn, node.onmouseout = fn; } |
Часовой пояс GMT +3, время: 16:08. |