据我所知,事件授权是在原型中构建的bot,但独立完成并不太困难。只需添加一个处理程序来观察
body
然后使用
Event#findElement
检查它是否与您的选择器匹配。
下面是为您设置委派的示例函数(加载时运行此函数):
/**
* event_type: 'click', 'keydown', etc.
* selector: the selector to check against
* handler: a function that takes the element and the event as a parameter
*/
function event_delegator(event_type, selector, handler) {
Event.observe(document.body, event_type, function(event) {
var elt = Event.findElement(event, selector);
if (elt != document)
handler(event, elt);
});
}
您可能可以扩展元素来为您处理这个问题,从而简化所有内容。希望这有帮助!
编辑:悬停事件(或mousein/mouseout)对于工具提示来说应该是一个很好的事件。另外,不要让所有元素都加载,这在使用事件委托时是不必要的。以下是有关活动授权的更多链接:
http://www.sitepoint.com/blogs/2008/07/23/javascript-event-delegation-is-easier-than-you-think/