我想知道如何使用“传统”JavaScript 实现 jQuery 的 .live 功能。我想要像 $('a').live('mouseover', mouseover_func) 这样的东西像通常的 JavaScript 一样编写。但是如何呢?
最佳答案
将“鼠标悬停”事件处理程序绑定(bind)到 <body>
元素。在该处理程序中,检查它捕获的每个事件的“target”属性,并查看其“tagName”属性是否为“A”。如果是,请调用处理程序。
“实时”功能利用事件“冒泡”,这是浏览器进程的名称,用于检查从目标元素到 DOM 根的处理程序,一次检查一个父元素。由于每个 <a>
在您的文档中最终可以追溯到 <body>
,该根节点将获得所有未被取消冒泡的低级处理程序分流的“鼠标悬停”事件(通过事件对象上的“stopPropagation()”方法,或者我猜是一些奇怪的浏览器特定方式) .
然而,并非所有事件都会冒泡。我正在四处寻找一个很好的引用......好的,MDC page seems pretty good虽然可能有点老了。
关于javascript - 没有 jQuery 的 jQuery 实时功能,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4985277/