Javascript-форум (https://javascript.ru/forum/)
-   Общие вопросы Javascript (https://javascript.ru/forum/misc/)
-   -   Повесить событие onclick на массив input (https://javascript.ru/forum/misc/51667-povesit-sobytie-onclick-na-massiv-input.html)

LostDok 15.11.2014 01:42

Повесить событие onclick на массив input
 
Изучаю JS..
У меня есть массив, который я получил так:

var service = document.getElementById('calc').getElementsByTagName('input');


Мне надо на каждый элемент(input) массива(HTML Collection) повестить событие onchange.

Писать что-то типа

service[0].onchange = function()
    {
        alert('bla bla');
    }
    
    service[1].onchange = function()
    {
        alert('bla bla');
    }
    
    service[2].onchange = function()
    {
        alert('bla bla');
    }
...


не очень хочется. А как сделать по другому, чтобы было быстрее, не знаю.

Меня интересует, можно ли как-то все это оформить короче, например, в цикле?

Суть в том, что на странице есть много inpit type="checkbox". При изменение каждого input меняется текст в блоке с ценой. Что-то типа калькулятора для рассчета стоимости услуги.

bes 15.11.2014 01:59

ложись спать, сегодня с утра почитаешь про делегирование событий :)

danik.js 16.11.2014 06:11

Цитата:

Сообщение от LostDok
Меня интересует, можно ли как-то все это оформить короче, например, в цикле?

Можно, разрешаем)
Что такое цикл ты знаешь, тело цикла ты считай написал. Стало быть ты у нас разрешение просто спросил? Ок, можно )

Но событие change всплывает вверх по предкам. Так что можешь ловить его только на форме. Это и есть делегирование.


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