как прикрепить событие onclick к массиву элементов (mootools)

#javascript #events #mootools

#javascript #Мероприятия #mootools

Вопрос:

Существует ли синтаксис для следующего:

 $$('.a-lot-of-elems').addEvent('someevent',somefunction);
  

Комментарии:

1. Это должно просто сработать. Элемент, конечно, должен поддерживать событие.

2. … Хотя я не уверен, работает ли это для 1.1.2. Какую версию вы используете?

3. @Htbaa Я использую последнюю версию.

Ответ №1:

Во-первых, следующее будет работать просто отлично.

 $$(selector).addEvents({
    click: fn
});
  

Не используйте for для перебора коллекции элементов, вместо этого используйте each:

 $$(selector).each(function(el){
    el.addEvents({
        click: fn
    });
});
  

Вот рабочий пример: http://jsfiddle.net/EPYBx

Ответ №2:

Вам просто не хватает типа события.

 var someFunction = function(e) {
  alert('clicked!');
}

$$('.a-lot-of-elems').addEvent('click', somefunction);
  

В качестве альтернативы вы можете использовать

 $$('.a-lot-of-elems').addEvent('click', function(e) {
  alert('clicked!');
});
  

Комментарии:

1. Виноват, я хотел привести общий пример того, что мне нужно.

Ответ №3:

что-то вроде

 var elements = $$('.a-lot-of-elems')
for(var i = 0 ; i < elements.length ; i = i   1)
{
  elements[i].addEvent(somefunction);
}
  

должно получиться!

Комментарии:

1. $ используется для извлечения элемента по идентификатору. Это не сработает. Вы должны использовать $$ для извлечения всех элементов, соответствующих селектору.

2. @thecoshman спасибо, я знаком с этим способом, я ищу более короткий способ написать это.