在使用 jQuery 開發(fā)前端頁(yè)面時(shí),經(jīng)常需要對(duì)頁(yè)面上的元素進(jìn)行事件綁定。而對(duì)于復(fù)雜的頁(yè)面,往往會(huì)遇到冒泡問(wèn)題,即事件會(huì)在祖先元素和子元素之間傳播。這時(shí)候,取消冒泡就成了必須掌握的技能。
而在 jQuery 中,取消冒泡可以通過(guò)使用event.stopPropagation()
方法來(lái)實(shí)現(xiàn)。這個(gè)方法可以阻止事件的傳播,從而使得事件只在當(dāng)前元素中執(zhí)行,而不會(huì)向祖先元素傳播。
然而,我們大多數(shù)人在綁定事件時(shí)都會(huì)使用$(selector).on(event, handler)
這個(gè)方法。那么在這種情況下,如何取消冒泡呢?答案是將event
對(duì)象作為on
方法的第二個(gè)參數(shù),然后在方法內(nèi)部調(diào)用event.stopPropagation()
方法。如下所示:
$(selector).on(event, function(event) { event.stopPropagation(); // 之后的代碼 });
這樣,當(dāng)事件觸發(fā)時(shí),會(huì)先執(zhí)行內(nèi)部的函數(shù),然后在執(zhí)行其他事件處理程序之前停止事件傳播。
下一篇瀏覽css兼容模式