全部課程
發(fā)布時(shí)間: 2019-04-19 17:59:53
?如果在頁(yè)面中重疊了多個(gè)元素,并且重疊的這些元素都綁定了同一個(gè)事件,那么就會(huì)出現(xiàn)冒泡問(wèn)題。
//HTML 頁(yè)面
<divstyle="width:200px;height:200px;background:red;">
<inputtype="button" value="按鈕" />
</div>
//三個(gè)不同元素觸發(fā)事件
$('input').click(function() {
alert('按鈕被觸發(fā)了!');
});
$('div').click(function() {
alert('div 層被觸發(fā)了!');
});
$(document).click(function() {
alert('文檔頁(yè)面被觸發(fā)了!');
});
注意:當(dāng)我們點(diǎn)擊文檔的時(shí)候,只觸發(fā)文檔事件;當(dāng)我們點(diǎn)擊 div 層時(shí),觸發(fā)了 div 和文檔兩個(gè);當(dāng)我們點(diǎn)擊按鈕時(shí),觸發(fā)了按鈕、div 和文檔。觸發(fā)的順序是從小范圍到大范圍。這就是所謂的冒泡現(xiàn)象,一層一層往上。
jQuery 提供了一個(gè)事件對(duì)象的方法:event.stopPropagation();這個(gè)方法設(shè)置到需要觸發(fā)的事件上時(shí),所有上層的冒泡行為都將被取消。
$('input').click(function(e) {
alert('按鈕被觸發(fā)了!');
e.stopPropagation(); //阻止其它的冒泡(元素)事件
});
上一篇: 數(shù)據(jù)歸一化方法