//div树形结构 <di> <span> <a>123</a> </span>this
</div>, 为<div>添加了一个mouseout事件处理程序。当用户的鼠 标指针退出这个<div>时,会按照预期运行mouseout处理程序。由于这个过程发生在顶层元素 上,因此其余元素不会取得这个事件。可是,当指针从<a>元素上离开时,<a>元素也会取得一 个mouseout事件。而后,这个事件会向上冒泡到<span>和<div>,从而触发上述的事件处理程 序。这种冒泡序列极可能不是咱们所但愿的。 重点 限制问题的做用域 要解决这个问题,必须访问事件对象。事件对象是一种DOM结构,它会在元素得到处理事 件的机会时传递给被调用的事件处理程序。spa
$(document).ready(function() { $('#switcher').click(function(event) { //event能够本身取别名 if (event.target == this) { $('#switcher button').toggleClass('hidden'); } }); }); 此时的代码确保了被单击的元素是<div id="switcher">①,而不是其余后代元素。如今, 单击按钮不会再折叠样式转换器,而单击转换器背景区则会触发折叠操做。可是,单击标签 (<h3>)一样什么也不会发生,由于它也是一个后代元素指针