一個return false 引發(fā)的血案-js事件繼承

問題描述

最近做一個項目葱轩,要給一個頁面在頂部新增一個入口屠阻,本以為是個超級簡單的事情宴树,結果發(fā)現(xiàn)用a標簽把點擊元素包裹起來無效策菜,給點擊元素綁定事件也無效,一件本以為簡單的事情酒贬,結果出了稀奇古怪的效果又憨。

問題排查

一般而言是不會有這個原因的,為什么給元素加了事件锭吨,點擊卻不觸發(fā)蠢莺?是事件沒綁定成功?在chrome里面的event listener里面檢查耐齐,發(fā)現(xiàn)有點擊事件浪秘。那么就是事件沒綁定了卻沒觸發(fā)。測試了一下埠况,發(fā)現(xiàn)點擊在子元素才不會觸發(fā)事件。我們都知道子元素是會繼承父元素的事件的棵癣。搜索了一下辕翰,終于找到鬼魁禍首 一個子元素的事件綁定中有 return false。

兩種事件流

根據(jù)事件的傳播順序不同狈谊,分為兩種事件流喜命。

冒泡型事件流:從子節(jié)點向根節(jié)點傳播。

捕獲型事件流:從父節(jié)點到子節(jié)點河劝。

現(xiàn)在我們使用的事件絕大多數(shù)都是冒泡型的壁榕,所有的現(xiàn)代瀏覽器都支持冒泡,一些老瀏覽器不支持捕獲赎瞎。

阻止事件繼承

1.為子元素添加和父元素一樣的事件牌里,然后在子元素中阻止事件冒泡。eg:

$("#child").on('click',function(e){  
   e.cancelBubble = true;//ie
    e.stopPropagation();  //阻止事件冒泡
});
  1. 對于onmouseover 和mouseout 不能用上述方法來阻止事件冒泡,這個時候可以用 return false牡辽。eg:
function overOrOut(e,target){
    if(e.type != "mouseover" && e.type != "mouseout"){  
            return false;  
    } 
    //do otherthing
}

return false也能阻止事件冒泡喳篇,但是它不僅阻止了事件冒泡也阻止了事件本身,相當于阻塞了該事件态辛,不再執(zhí)行麸澜。而e.stopPropagation()只是阻止事件冒泡。

tips:鏈接等是有默認事件的奏黑,阻止事件冒泡前需要先阻止事件的默認事件 event.preventDefault或window.event.returnValue=false炊邦。

最后編輯于
?著作權歸作者所有,轉載或內容合作請聯(lián)系作者
  • 序言:七十年代末,一起剝皮案震驚了整個濱河市熟史,隨后出現(xiàn)的幾起案子馁害,更是在濱河造成了極大的恐慌,老刑警劉巖以故,帶你破解...
    沈念sama閱讀 218,755評論 6 507
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件蜗细,死亡現(xiàn)場離奇詭異,居然都是意外死亡怒详,警方通過查閱死者的電腦和手機炉媒,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 93,305評論 3 395
  • 文/潘曉璐 我一進店門,熙熙樓的掌柜王于貴愁眉苦臉地迎上來昆烁,“玉大人吊骤,你說我怎么就攤上這事【材幔” “怎么了白粉?”我有些...
    開封第一講書人閱讀 165,138評論 0 355
  • 文/不壞的土叔 我叫張陵,是天一觀的道長鼠渺。 經常有香客問我鸭巴,道長,這世上最難降的妖魔是什么拦盹? 我笑而不...
    開封第一講書人閱讀 58,791評論 1 295
  • 正文 為了忘掉前任鹃祖,我火速辦了婚禮,結果婚禮上普舆,老公的妹妹穿的比我還像新娘恬口。我一直安慰自己,他們只是感情好沼侣,可當我...
    茶點故事閱讀 67,794評論 6 392
  • 文/花漫 我一把揭開白布祖能。 她就那樣靜靜地躺著,像睡著了一般蛾洛。 火紅的嫁衣襯著肌膚如雪养铸。 梳的紋絲不亂的頭發(fā)上,一...
    開封第一講書人閱讀 51,631評論 1 305
  • 那天,我揣著相機與錄音揭厚,去河邊找鬼却特。 笑死,一個胖子當著我的面吹牛筛圆,可吹牛的內容都是我干的裂明。 我是一名探鬼主播,決...
    沈念sama閱讀 40,362評論 3 418
  • 文/蒼蘭香墨 我猛地睜開眼太援,長吁一口氣:“原來是場噩夢啊……” “哼闽晦!你這毒婦竟也來了?” 一聲冷哼從身側響起提岔,我...
    開封第一講書人閱讀 39,264評論 0 276
  • 序言:老撾萬榮一對情侶失蹤仙蛉,失蹤者是張志新(化名)和其女友劉穎,沒想到半個月后碱蒙,有當?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體荠瘪,經...
    沈念sama閱讀 45,724評論 1 315
  • 正文 獨居荒郊野嶺守林人離奇死亡,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內容為張勛視角 年9月15日...
    茶點故事閱讀 37,900評論 3 336
  • 正文 我和宋清朗相戀三年赛惩,在試婚紗的時候發(fā)現(xiàn)自己被綠了哀墓。 大學時的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片。...
    茶點故事閱讀 40,040評論 1 350
  • 序言:一個原本活蹦亂跳的男人離奇死亡喷兼,死狀恐怖篮绰,靈堂內的尸體忽然破棺而出,到底是詐尸還是另有隱情季惯,我是刑警寧澤吠各,帶...
    沈念sama閱讀 35,742評論 5 346
  • 正文 年R本政府宣布,位于F島的核電站勉抓,受9級特大地震影響贾漏,放射性物質發(fā)生泄漏。R本人自食惡果不足惜藕筋,卻給世界環(huán)境...
    茶點故事閱讀 41,364評論 3 330
  • 文/蒙蒙 一磕瓷、第九天 我趴在偏房一處隱蔽的房頂上張望。 院中可真熱鬧念逞,春花似錦、人聲如沸边翁。這莊子的主人今日做“春日...
    開封第一講書人閱讀 31,944評論 0 22
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽符匾。三九已至叨咖,卻和暖如春,著一層夾襖步出監(jiān)牢的瞬間,已是汗流浹背甸各。 一陣腳步聲響...
    開封第一講書人閱讀 33,060評論 1 270
  • 我被黑心中介騙來泰國打工垛贤, 沒想到剛下飛機就差點兒被人妖公主榨干…… 1. 我叫王不留,地道東北人趣倾。 一個月前我還...
    沈念sama閱讀 48,247評論 3 371
  • 正文 我出身青樓聘惦,卻偏偏與公主長得像,于是被迫代替她去往敵國和親儒恋。 傳聞我的和親對象是個殘疾皇子善绎,可洞房花燭夜當晚...
    茶點故事閱讀 44,979評論 2 355

推薦閱讀更多精彩內容

  • ??JavaScript 與 HTML 之間的交互是通過事件實現(xiàn)的禀酱。 ??事件,就是文檔或瀏覽器窗口中發(fā)生的一些特...
    霜天曉閱讀 3,493評論 1 11
  • 總結: 鼠標事件 1.click與dbclick事件$ele.click()$ele.click(handler(...
    阿r阿r閱讀 1,607評論 2 10
  • js之事件機制 1牧嫉、事件初探 1.1 js事件的概述 JavaScript事件:JavaScript是基于事件驅動...
    道無虛閱讀 2,363評論 1 3
  • Spring Cloud為開發(fā)人員提供了快速構建分布式系統(tǒng)中一些常見模式的工具(例如配置管理剂跟,服務發(fā)現(xiàn),斷路器酣藻,智...
    卡卡羅2017閱讀 134,659評論 18 139
  • 一出喜劇 一首肖邦譜寫的歌 一卷珠簾 一臺收音機 一只看門的狗 我也寫過詩 未命名的詩 我也唱過歌 未...
    see0502閱讀 246評論 2 6