Функция Event.observe - наблюдает элемент за классом вместо идентификатора - PullRequest
7 голосов
/ 05 февраля 2010

Есть прототип функции js:

Event.observe (элемент, eventName, обработчик)

здесь элемент означает идентификатор элемента.

Можно ли здесь поставить элемент класс ?

Я получил этот элемент от третьей стороны только с атрибутом класса.

1 Ответ

22 голосов
/ 05 февраля 2010

$$ может извлекать элементы с помощью селектора css, в том числе по классам через нотацию .:

$$('.myClass'); // array with all elements that have class "myClass"

Чтобы ответить на ваш вопрос, Event.observe является «статической» версией observe (для всех намерений и целей). Для удобства Прототип автоматически делает доступным .observe из всех элементов DOM (выбирается либо с помощью $, либо $$):

Примеры:

// get one item by id with $ and attach an event listener:
$('myId').observe(eventName, handler);

// get many items by class with $$ and attach an event listener:
$$('.myClass').each(function(element) {
  element.observe(eventName, handler);
});

// or shorter:
$$('.myClass').invoke('observe', eventName, handler);
...