jQuery中的click事件是頁面中最常見的一種事件。但在使用click事件時,我們也需要注意其冒泡特性。
所謂冒泡,即事件會從被點擊的元素開始往外層元素逐個傳遞,直至到達文檔根節(jié)點。因此,如果點擊的元素還包含子元素,那么在觸發(fā)click事件時,該子元素也會觸發(fā)click事件。
比如下面的HTML結構:
<div id="parent"> <div id="child">Click me!</div> </div>
如果我們在父元素上添加click事件,那么在點擊子元素時,也會觸發(fā)父元素上的click事件。如下所示:
$('#parent').click(function(event) { console.log('Parent is clicked!'); }); $('#child').click(function(event) { console.log('Child is clicked!'); // 阻止事件冒泡 event.stopPropagation(); });
運行后,當我們點擊子元素時,控制臺會同時輸出“Child is clicked!”和“Parent is clicked!”。這是因為子元素上的click事件冒泡到了父元素。
但如果我們在子元素上添加click事件,并添加阻止事件冒泡代碼,那么只會觸發(fā)子元素上的click事件。代碼如下:
$('#parent').click(function(event) { console.log('Parent is clicked!'); }); $('#child').click(function(event) { console.log('Child is clicked!'); // 阻止事件冒泡 event.stopPropagation(); });
運行后,當我們點擊子元素時,控制臺只會輸出“Child is clicked!”。
上一篇動畫css an