Я написал скроллер новостей, который использует библиотеки Prototype и Script.aculo.us для прокрутки ленты новостей с заданным интервалом. В каждом элементе новостей есть кнопки, которые позволяют пользователю вручную прокручивать ленту новостей вверх или вниз. Когда страница загружена, кнопкам назначаются обработчики событий, при которых они нажимаются:
$$('img.up').each(function(img) {
img.observe('click', function(e) {
window.clearTimeout(timeout);
timeout = scrollTicker(-block_size, 2);
});
});
$$('img.down').each(function(img) {
img.observe('click', function(e) {
window.clearTimeout(timeout);
timeout = scrollTicker(block_size, 2);
});
});
Это отлично работает. У меня проблема, когда новые новости динамически добавляются в конец существующих новостей, к которым не прикреплены обработчики событий.
Из того, что я прочитал, кажется, что лучший способ справиться с этим - использовать всплывающее окно событий. Таким образом, мне не нужно прикреплять обработчики событий к каждой отдельной кнопке. К сожалению, я не могу найти, как сделать это правильно с Prototype. Как происходит генерация событий с помощью Prototype?
(Один из вариантов, который мне не доступен, состоит в том, чтобы удалить кнопки из каждого новостного элемента и использовать один набор кнопок для всех из них, поскольку мне не хватает места в выделенном для этого месте.)