Javascript-форум (https://javascript.ru/forum/)
-   Элементы интерфейса (https://javascript.ru/forum/dom-window/)
-   -   Как записать все елементы в массив, чтобы потом применить ко всем сразу событие? (https://javascript.ru/forum/dom-window/30960-kak-zapisat-vse-elementy-v-massiv-chtoby-potom-primenit-ko-vsem-srazu-sobytie.html)

platedz 22.08.2012 01:41

Как записать все елементы в массив, чтобы потом применить ко всем сразу событие?
 
Как записать все элементы в массив (или объект), чтобы потом применить ко всем ним какое-нибудь событие?
Т.е. нужно что-то навроде

var masel = [];

masel[1] = document.getElementById("id1");
masel[2] = document.getElementById("id2");
masel["onclick"] = function.....

melky 22.08.2012 07:31

for (var i = 1, m = masel.length; i < m; i++) {
    masel[i].onclick = ..............
}

platedz 22.08.2012 11:56

Спасибо за ответ. А сразу ко всем никак нельзя? Получается, что мне в каждом методе необходимо сделать цикл.

Deff 22.08.2012 13:04

platedz,
Есть Вариант отслеживания событий на общем родителе, с последующим определением элемена клика

melky 22.08.2012 14:21

Цитата:

Сообщение от platedz (Сообщение 199611)
Спасибо за ответ. А сразу ко всем никак нельзя? Получается, что мне в каждом методе необходимо сделать цикл.

http://learn.javascript.ru/event-delegation

platedz 22.08.2012 21:59

А почему так не выходит?
<div id="id1">id1</div><div id="id2">id2</div>
<script> alert(document.getElementById("id1","id2").innerHTML); </script>

bes 22.08.2012 22:12

Потому что так сделали

oneguy 22.08.2012 22:49

Цитата:

Сообщение от platedz (Сообщение 199753)
А почему так не выходит?
<div id="id1">id1</div><div id="id2">id2</div>
<script> alert(document.getElementById("id1","id2").innerHTML); </script>

Функция document.getElementById принимает только 1 параметр.

platedz 22.08.2012 23:16

Спасибо за ответ. Думаю попробовать с помощью elem.querySelectorAll(css). Вроде написано что ie8 он поддерживает, а на более низкие я уже особо не ориентируюсь.

platedz 23.08.2012 00:54

Если я правильно понимаю, при делегировании событий идет обход всех дочерних элементов начиная с текущего, пока он не достигнет установленного родителя.

Т.е. чтобы обратиться к любому элементу на странице мне необходимо по идее записывать или document.onclick = function(){и здесь осуществлять проверку на то, произошло ли данное событие на нужном мне элементе}
Я верно понимаю.


Часовой пояс GMT +3, время: 07:33.