Event事件-1:addEventListener事件監(jiān)聽 / 事件冒泡事件捕獲 / 事件委托 / preventDefault 阻止默認(rèn)行為 / cancelBubble、stopPropa...

addEventListener 事件監(jiān)聽器

? ??????target.addEventListener(type,?listener[,?options|useCapture])?????添加事件監(jiān)聽

參數(shù):

???????type?事件類型?(click晚胡、mouseover等蜜暑,注意這里不加on)

???????listener?事件處理函數(shù)

可選參數(shù):

????????options?配置對(duì)象

????????????capture:??Boolean,表示?listener?會(huì)在該類型的事件捕獲階段傳播到該?EventTarget?時(shí)觸發(fā)痪伦。

????????????once:??Boolean荣回,表示?listener?在添加之后最多只調(diào)用一次遭贸。如果是?true,?listener?會(huì)在其被調(diào)用之后自動(dòng)移除心软。

????????????passive:?Boolean壕吹,設(shè)置為true時(shí)著蛙,表示?listener?永遠(yuǎn)不會(huì)調(diào)用?preventDefault()。如果?listener?仍然調(diào)用了這個(gè)函數(shù)耳贬,

????????????????????????????????????????????客戶端將會(huì)忽略它并拋出一個(gè)控制臺(tái)警告踏堡。

????????useCapture?Boolean,表示?listener?會(huì)在該類型的事件捕獲階段傳播到該?EventTarget?時(shí)觸發(fā)咒劲。

? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ?第三個(gè)參數(shù)不設(shè)置時(shí)顷蟆,默認(rèn)執(zhí)行的是?useCapture?為?false?也就是在冒泡階段執(zhí)行

? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ?下面詳解

事件監(jiān)聽和事件綁定的區(qū)別(盡量用事件監(jiān)聽)


事件捕獲

? ??????當(dāng)事件發(fā)生時(shí),最先得到通知的是window腐魂,然后是document帐偎,由上至下逐級(jí)依次而入,直到真正觸發(fā)事件的那個(gè)元素(目標(biāo)元素)為止蛔屹,

? ??????這個(gè)過程就是捕獲削樊。

事件冒泡

? ??????接下來,事件會(huì)從目標(biāo)元素開始起泡兔毒,由下至上逐級(jí)依次傳播漫贞,直到window對(duì)象為止,這個(gè)過程就是冒泡育叁。

事件流:事件冒泡? ? ?小到大

????????js當(dāng)中有一個(gè)特性:?事件會(huì)冒泡

????????????????// DOM樹?

????????????????//?html?>?body?>?div?>?p?

????????????????//?p標(biāo)簽?包含在?div/body/html

????????????????//?執(zhí)行子元素事件同時(shí)迅脐,父元素如有同樣事件,也會(huì)執(zhí)行

????????????????//?事件冒泡的執(zhí)行順序??:?由小到大??p?>?div?>?body?>?html

事件流:事件捕獲? ? ? 大到小

????????addEventListener('ev',fn,[Boolean,{}])??默認(rèn)冒泡執(zhí)行的

????????????????//?默認(rèn)第三個(gè)參數(shù)是?false?(不捕獲)

????????????????//?第三個(gè)參數(shù):如果是布爾值:true?是進(jìn)行捕獲執(zhí)行擂红,?false?不捕獲

????????????????//?事件捕獲:?由大到小??html?>?body?>?div?>?p?

????????????????//?第三個(gè)參數(shù)?還可以?傳遞對(duì)象:

第三個(gè)參數(shù)?還可以?傳遞對(duì)象:{}

? ? ? ? capture:true/false?是否在捕獲階段執(zhí)行

? ? ? ? once:true/false?只執(zhí)行一次事件

? ??????passive:false/true? 阻止取消默認(rèn)事件????true(不允許阻止)?仪际、?false?(允許阻止)

preventDefault 阻止默認(rèn)行為


removeEventListener 取消事件監(jiān)聽 (不能用匿名函數(shù))

????????removeEventListener(event,fn)

????????綁定的事件函數(shù)-必須是命名函數(shù)!


Event 事件對(duì)象

? ??????Event.target 事件觸發(fā)的目標(biāo)源元素? ? ? ? ? ?target翻譯是目標(biāo)

? ??????Event.currentTarget?事件綁定的元素?? ? ????current翻譯是正在發(fā)生的; 當(dāng)前的; 現(xiàn)在的


事件委托(事件代理)

? ??????e.target?事件源

????????事件代理(事件委托):利用冒泡機(jī)制將事件統(tǒng)一委托在父級(jí)上執(zhí)行昵骤,在通過事件源獲取到相關(guān)元素

????優(yōu)點(diǎn):

????????????1.減少事件注冊(cè),節(jié)省內(nèi)存

????????????2.可以給將來的元素添加事件(在不刷新頁面的情況下)

????缺點(diǎn):

????????????1.建議就近委托肯适,否則會(huì)導(dǎo)致瀏覽器頻繁的調(diào)用處理函數(shù)

????????????2.祖父級(jí)和事件源之間不能有阻止冒泡变秦,容易出現(xiàn)誤判,所以寫好相應(yīng)判斷

????????加個(gè)判斷框舔,這樣點(diǎn)擊的如果是p蹦玫,不變化


e.bubbles?是否冒泡

? ??????e.stopPropagation()?和?e.cancelBubble? ??取消事件冒泡

cancelBubble 取消事件冒泡-1

stopPropagation?取消事件冒泡-2


最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
  • 序言:七十年代末,一起剝皮案震驚了整個(gè)濱河市刘绣,隨后出現(xiàn)的幾起案子樱溉,更是在濱河造成了極大的恐慌,老刑警劉巖纬凤,帶你破解...
    沈念sama閱讀 210,914評(píng)論 6 490
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件福贞,死亡現(xiàn)場(chǎng)離奇詭異,居然都是意外死亡停士,警方通過查閱死者的電腦和手機(jī)挖帘,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 89,935評(píng)論 2 383
  • 文/潘曉璐 我一進(jìn)店門完丽,熙熙樓的掌柜王于貴愁眉苦臉地迎上來,“玉大人拇舀,你說我怎么就攤上這事逻族。” “怎么了骄崩?”我有些...
    開封第一講書人閱讀 156,531評(píng)論 0 345
  • 文/不壞的土叔 我叫張陵聘鳞,是天一觀的道長(zhǎng)。 經(jīng)常有香客問我要拂,道長(zhǎng)抠璃,這世上最難降的妖魔是什么? 我笑而不...
    開封第一講書人閱讀 56,309評(píng)論 1 282
  • 正文 為了忘掉前任宇弛,我火速辦了婚禮鸡典,結(jié)果婚禮上,老公的妹妹穿的比我還像新娘枪芒。我一直安慰自己彻况,他們只是感情好,可當(dāng)我...
    茶點(diǎn)故事閱讀 65,381評(píng)論 5 384
  • 文/花漫 我一把揭開白布舅踪。 她就那樣靜靜地躺著纽甘,像睡著了一般。 火紅的嫁衣襯著肌膚如雪抽碌。 梳的紋絲不亂的頭發(fā)上悍赢,一...
    開封第一講書人閱讀 49,730評(píng)論 1 289
  • 那天,我揣著相機(jī)與錄音货徙,去河邊找鬼左权。 笑死,一個(gè)胖子當(dāng)著我的面吹牛痴颊,可吹牛的內(nèi)容都是我干的赏迟。 我是一名探鬼主播,決...
    沈念sama閱讀 38,882評(píng)論 3 404
  • 文/蒼蘭香墨 我猛地睜開眼蠢棱,長(zhǎng)吁一口氣:“原來是場(chǎng)噩夢(mèng)啊……” “哼锌杀!你這毒婦竟也來了?” 一聲冷哼從身側(cè)響起泻仙,我...
    開封第一講書人閱讀 37,643評(píng)論 0 266
  • 序言:老撾萬榮一對(duì)情侶失蹤糕再,失蹤者是張志新(化名)和其女友劉穎,沒想到半個(gè)月后玉转,有當(dāng)?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體突想,經(jīng)...
    沈念sama閱讀 44,095評(píng)論 1 303
  • 正文 獨(dú)居荒郊野嶺守林人離奇死亡,尸身上長(zhǎng)有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點(diǎn)故事閱讀 36,448評(píng)論 2 325
  • 正文 我和宋清朗相戀三年,在試婚紗的時(shí)候發(fā)現(xiàn)自己被綠了蒿柳。 大學(xué)時(shí)的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片饶套。...
    茶點(diǎn)故事閱讀 38,566評(píng)論 1 339
  • 序言:一個(gè)原本活蹦亂跳的男人離奇死亡,死狀恐怖垒探,靈堂內(nèi)的尸體忽然破棺而出妓蛮,到底是詐尸還是另有隱情,我是刑警寧澤圾叼,帶...
    沈念sama閱讀 34,253評(píng)論 4 328
  • 正文 年R本政府宣布蛤克,位于F島的核電站,受9級(jí)特大地震影響夷蚊,放射性物質(zhì)發(fā)生泄漏构挤。R本人自食惡果不足惜,卻給世界環(huán)境...
    茶點(diǎn)故事閱讀 39,829評(píng)論 3 312
  • 文/蒙蒙 一惕鼓、第九天 我趴在偏房一處隱蔽的房頂上張望筋现。 院中可真熱鬧,春花似錦箱歧、人聲如沸矾飞。這莊子的主人今日做“春日...
    開封第一講書人閱讀 30,715評(píng)論 0 21
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽洒沦。三九已至,卻和暖如春价淌,著一層夾襖步出監(jiān)牢的瞬間申眼,已是汗流浹背。 一陣腳步聲響...
    開封第一講書人閱讀 31,945評(píng)論 1 264
  • 我被黑心中介騙來泰國(guó)打工蝉衣, 沒想到剛下飛機(jī)就差點(diǎn)兒被人妖公主榨干…… 1. 我叫王不留括尸,地道東北人。 一個(gè)月前我還...
    沈念sama閱讀 46,248評(píng)論 2 360
  • 正文 我出身青樓病毡,卻偏偏與公主長(zhǎng)得像姻氨,于是被迫代替她去往敵國(guó)和親。 傳聞我的和親對(duì)象是個(gè)殘疾皇子剪验,可洞房花燭夜當(dāng)晚...
    茶點(diǎn)故事閱讀 43,440評(píng)論 2 348

推薦閱讀更多精彩內(nèi)容

  • event propagation事件冒泡 element.addEventListener('click', l...
    ERICOOLU閱讀 4,210評(píng)論 0 1
  • 事件是一種異步編程的實(shí)現(xiàn)方式,本質(zhì)上是程序各個(gè)組成部分之間的通信前联。DOM支持大量的事件功戚,本節(jié)介紹DOM的事件編程。...
    許先生__閱讀 931評(píng)論 0 3
  • ??JavaScript 與 HTML 之間的交互是通過事件實(shí)現(xiàn)的。 ??事件,就是文檔或?yàn)g覽器窗口中發(fā)生的一些特...
    霜天曉閱讀 3,474評(píng)論 1 11
  • 背景知識(shí) 什么是事件乘粒?直觀的說就是網(wǎng)頁上發(fā)生的事情豌注,大部分是指用戶的鼠標(biāo)動(dòng)作和鍵盤動(dòng)作,如點(diǎn)擊灯萍、移動(dòng)鼠標(biāo)轧铁、按下某個(gè)...
    吧啦啦小湯圓閱讀 1,838評(píng)論 2 15
  • 1.JQuery 基礎(chǔ) 改變web開發(fā)人員創(chuàng)造搞交互性界面的方式。設(shè)計(jì)者無需花費(fèi)時(shí)間糾纏JS復(fù)雜的高級(jí)特性旦棉。 1....
    LaBaby_閱讀 1,330評(píng)論 0 2