“elem_classs”。Event.observe(窗口, “负载”,函数(){$$()的findAll(函数(节点){返回node.getAttribute( '标题');})每个(函数(节点){新工具提示(节点,node.title); node.removeAttribute( “标题”);});});
使用上面的方法,我可以检索具有所有元素".elem_class"
和适用于他们一些JavaScript函数。 但我也有“.elem_class”其中有一些元素一个模式/弹出框,而这些不得到的findAll范围/每因为它们加载到DOM中通AJAX。
我该如何申请相同的动态加载的元素呢? 我使用的原型库。 (我用JQuery的直播功能,这使未来的所有元素的轨道,但需要达到类似的东西使用原型)
谢谢。
据我所知,事件代表团建成原型的机器人,但它不应该太难做你自己。 只需添加一个处理程序,以观察其对事件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 /鼠标移出)应该是一个提示一个很好的事件。 此外,不要在加载的所有要素,即使用事件委派时是不必要的。 下面是有关事件代表团更多的链接: http://www.sitepoint.com/blogs/2008/07/23/javascript-event-delegation-is-easier-than-you-think/
文章来源: Is there any Prototype Javascript function similar to Jquery Live to trace dynamic dom elements?