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