冒泡事件简介

当我们单击一个控件时,如果包含控件的父控件有一个单击事件,它将继续。
例如,在div下有一个单击事件,当您单击A时,警报会出现2次,这种现象称为冒泡事件。


此事件已从原始元素冒泡到DOM树的顶部。
目标元素:任何事件的目标元素都是第一个元素,在我们的例子中,按钮,
它以属性的形式出现在我们的元素对象中,通过事件代理,我们可以将事件处理程序添加到元素中。
等待一个事件从它的子元素中冒泡,并很容易地知道事件的哪个元素开始。
小心 uff1a
模糊、焦点、加载和卸载不能像其他事件那样冒泡,实际上,可以通过事件捕获而不是事件冒泡(在伊江以外的其他浏览器中)获得模糊和焦点。

二、防止jQuery事件冒泡

jQuery对DOM的事件触发器具有冒泡特性,有时使用此特性可以减少代码重复,但有时我们不希望事件冒泡。

在jQuery文档的开头,我们知道jQuery事件对象是符合W3C标准的事件对象。同时,事件消除了检查IE兼容的步骤。
jquery事件提供了一个非常简单的方法来阻止事件冒泡:event.stoppropagation();
复制代码代码如下所示:
$()。Click(函数(事件){)
event.stoppropagation();
做某事
})

但是这种方法对使用活绑定的事件无效,需要一种更简单的方法来防止事件冒泡:返回false;
复制代码代码如下所示:
$(此)!;

返回false;});

与多个浏览器兼容的停止气泡功能:
复制代码代码如下所示:
功能stopdefault(e){
停止默认浏览器操作(W3C)
如果(E e.preventDefault)
E.preventDefault();
防止函数设备默认动作的方法
其他的
window.event.returnvalue = false;
返回false;
}


三。使用event.tatget属性明确的事件对象

在事件处理程序中的变量事件保存事件对象的属性。event.tatget持有该事件的目标元素。这个属性是DOM API规定的,但并不是所有的browsers.jquery实施进行必要的扩展事件对象,该属性可以用在任何browser.through.target,您可以确定在接收事件的DOM的第一要素。此外,我们知道这是指的DOM元素,处理事件。

使用event.tatget属性明确的事件对象

阻止事件冒泡的代码如下所示:
复制代码代码如下所示:
$(文档)Ready(函数(){)
$('switcher)。Click(函数(事件){
如果(event.target =本)
{
$('switcher.Button').ToggleClass ('hidden');
}
});
});