Связывание пользовательских функций с событиями DOM в прототипе?
JQuery имеет отличную конструкцию языка, которая выглядит так:
$(document).ready(function() {
$("a").click(function() {
alert("Hello world!");
});
});
Как вы могли догадаться, это после того, как был загружен документ, связывает пользовательскую функцию к событию OnClick всех а теги.
Вопрос в том, как я могу достичь такого же поведения в Prototype?
Ответы
Ответ 1
Прототип 1.6 предоставляет "dom: loaded" событие в документе:
document.observe("dom:loaded", function() {
$$('a').each(function(elem) {
elem.observe("click", function() { alert("Hello World"); });
});
});
Я также использую each итератор в массиве, возвращаемом $$().
Ответ 2
$(document).observe('dom:loaded', function() {
$$('a').invoke('observe', 'click', function() {
alert('Hello world!');
});
});
Ответ 3
Event.observe(window, 'load', function() {
Event.observe(element, 'click', function() {
alert("Hello World!");
});
});
Конечно, вам нужно сначала "выбрать" элементы в Prototype.
Ответ 4
В этой статье представлен неплохой обзор библиотеки событий Prototype. Я думаю, что по сравнению с jQuery это каменный век api.:)
http://alternateidea.com/blog/articles/2006/2/8/working-with-events-in-prototype