我写了一个新闻滚动器,它使用Prototype和Script.aculo.us库以设定的时间间隔滚动浏览新闻馈送。每个新闻项目中都有按钮,可以让用户手动向上或向下滚动新闻Feed。当页面被加载时,按钮被分配事件处理程序,当它们被点击时:带原型的事件冒泡
$$('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如何进行事件冒泡?
(我没有提供给我的一个选项是从每个新闻项目中删除按钮,并使用一组按钮,因为我没有足够的空间在分配的空间中这样做。)