Прототип - событие click по имени класса элемента
Я новичок в прототипе фреймворка и пытаюсь сделать что-то действительно простое и терпящее неудачу. Я пытаюсь ответить на событие нажатия на кнопку следующим образом:
$$('.btn').observe('click', respond);
function respond(event) {
alert("hello");
}
Почему это не работает? Пожалуйста помоги!
Ответы
Ответ 1
В отличие от jQuery, селектор с несколькими результатами в Prototype работает несколько иначе. Вы должны обрабатывать каждый выбранный результат отдельно, используя .each()
.
$$('.btn').each(function(element) {
element.observe('click', respond);
})
Это одна из причин, по которой я перешел к jQuery. Другая причина: знание jQuery является товарным, а зная, что Prototype - нет.
Ответ 2
Можно также сделать однострочный, так как кто-то уже предложил в комментарии:
$$('.btn').invoke('observe', 'click', respond);