2011-02-13 64 views

回答

10

将“mouseover”事件处理程序绑定到<body>元素。在该处理程序中,检查它捕获的每个事件的“目标”属性,并查看其“tagName”属性是否为“A”。如果是这样,请致电处理程序。

“live”功能利用事件“bubbling”,这是浏览器检查从目标元素到DOM根的处理程序的名称,一次是父级。由于文档中的每个<a>最终可以追溯到<body>,因此该根节点将获取所有“鼠标悬停”事件,这些事件不会被取消冒泡的较低级别处理程序分流(通过“stopPropagation()”方法关于事件对象,或者我猜想的一些奇怪的浏览器特定方式)。

然而,并不是所有的事件都会冒泡。我正在四处寻找一个很好的参考...好的,在这里,MDC page seems pretty good虽然有点老可能。

+0

我虽然'生活'是自动绑定事件到匹配相同选择器的新元素。这是通过冒泡实现的吗?我不这么认为。 – GolezTrol 2011-02-13 16:32:36

0

只要阅读jQuery源代码,看看它是如何做到的。这是开源的乐趣之一。你会学到很多...