事件——監(jiān)聽函數(shù)

監(jiān)聽函數(shù)

瀏覽器的事件模型烦味,就是通過監(jiān)聽函數(shù)(listener)對事件做出反應聂使。事件發(fā)生后,瀏覽器監(jiān)聽到了這個事件谬俄,就會執(zhí)行對應的監(jiān)聽函數(shù)柏靶。這是事件驅(qū)動編程模式(event-driven)的主要編程方式。

JavaScript 有三種方法溃论,可以為事件綁定監(jiān)聽函數(shù)屎蜓。

HTML 的 on- 屬性

HTML 語言允許在元素的屬性中,直接定義某些事件的監(jiān)聽代碼钥勋。

<body onload="doSomething()">
<div onclick="console.log('觸發(fā)事件')">

上面代碼為body節(jié)點的load事件炬转、div節(jié)點的click事件,指定了監(jiān)聽代碼算灸。一旦事件發(fā)生扼劈,就會執(zhí)行這段代碼。

元素的事件監(jiān)聽屬性菲驴,都是on加上事件名荐吵,比如onload就是on + load,表示load事件的監(jiān)聽代碼谢翎。
注意捍靠,這些屬性的值是將會執(zhí)行的代碼,而不是一個函數(shù)森逮。

<!-- 正確 -->
<body onload="doSomething()">
<!-- 錯誤 -->
<body onload="doSomething">

一旦指定的事件發(fā)生榨婆,on-屬性的值是原樣傳入 JavaScript 引擎執(zhí)行。因此如果要執(zhí)行函數(shù)褒侧,不要忘記加上一對圓括號良风。

使用這個方法指定的監(jiān)聽代碼谊迄,只會在冒泡階段觸發(fā)。

<div onClick="console.log(2)">
  <button onClick="console.log(1)">點擊</button>
</div>

上面代碼中烟央,<button>是<div>的子元素统诺。<button>的click事件,也會觸發(fā)<div>的click事件疑俭。由于on-屬性的監(jiān)聽代碼粮呢,只在冒泡階段觸發(fā),所以點擊結(jié)果是先輸出1钞艇,再輸出2啄寡,即事件從子元素開始冒泡到父元素。

直接設(shè)置on-屬性哩照,與通過元素節(jié)點的setAttribute方法設(shè)置on-屬性挺物,效果是一樣的。

el.setAttribute('onclick', 'doSomething()');
// 等同于
// <Element onclick="doSomething()">
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
  • 序言:七十年代末飘弧,一起剝皮案震驚了整個濱河市识藤,隨后出現(xiàn)的幾起案子,更是在濱河造成了極大的恐慌次伶,老刑警劉巖痴昧,帶你破解...
    沈念sama閱讀 211,561評論 6 492
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件,死亡現(xiàn)場離奇詭異学少,居然都是意外死亡剪个,警方通過查閱死者的電腦和手機,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 90,218評論 3 385
  • 文/潘曉璐 我一進店門版确,熙熙樓的掌柜王于貴愁眉苦臉地迎上來扣囊,“玉大人,你說我怎么就攤上這事绒疗∏中” “怎么了?”我有些...
    開封第一講書人閱讀 157,162評論 0 348
  • 文/不壞的土叔 我叫張陵吓蘑,是天一觀的道長惕虑。 經(jīng)常有香客問我,道長磨镶,這世上最難降的妖魔是什么溃蔫? 我笑而不...
    開封第一講書人閱讀 56,470評論 1 283
  • 正文 為了忘掉前任,我火速辦了婚禮琳猫,結(jié)果婚禮上伟叛,老公的妹妹穿的比我還像新娘。我一直安慰自己脐嫂,他們只是感情好统刮,可當我...
    茶點故事閱讀 65,550評論 6 385
  • 文/花漫 我一把揭開白布紊遵。 她就那樣靜靜地躺著,像睡著了一般侥蒙。 火紅的嫁衣襯著肌膚如雪暗膜。 梳的紋絲不亂的頭發(fā)上,一...
    開封第一講書人閱讀 49,806評論 1 290
  • 那天鞭衩,我揣著相機與錄音学搜,去河邊找鬼。 笑死论衍,一個胖子當著我的面吹牛恒水,可吹牛的內(nèi)容都是我干的。 我是一名探鬼主播饲齐,決...
    沈念sama閱讀 38,951評論 3 407
  • 文/蒼蘭香墨 我猛地睜開眼,長吁一口氣:“原來是場噩夢啊……” “哼咧最!你這毒婦竟也來了捂人?” 一聲冷哼從身側(cè)響起,我...
    開封第一講書人閱讀 37,712評論 0 266
  • 序言:老撾萬榮一對情侶失蹤矢沿,失蹤者是張志新(化名)和其女友劉穎滥搭,沒想到半個月后,有當?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體捣鲸,經(jīng)...
    沈念sama閱讀 44,166評論 1 303
  • 正文 獨居荒郊野嶺守林人離奇死亡瑟匆,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點故事閱讀 36,510評論 2 327
  • 正文 我和宋清朗相戀三年,在試婚紗的時候發(fā)現(xiàn)自己被綠了栽惶。 大學時的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片愁溜。...
    茶點故事閱讀 38,643評論 1 340
  • 序言:一個原本活蹦亂跳的男人離奇死亡,死狀恐怖外厂,靈堂內(nèi)的尸體忽然破棺而出冕象,到底是詐尸還是另有隱情,我是刑警寧澤汁蝶,帶...
    沈念sama閱讀 34,306評論 4 330
  • 正文 年R本政府宣布渐扮,位于F島的核電站,受9級特大地震影響掖棉,放射性物質(zhì)發(fā)生泄漏墓律。R本人自食惡果不足惜,卻給世界環(huán)境...
    茶點故事閱讀 39,930評論 3 313
  • 文/蒙蒙 一幔亥、第九天 我趴在偏房一處隱蔽的房頂上張望耻讽。 院中可真熱鬧,春花似錦紫谷、人聲如沸齐饮。這莊子的主人今日做“春日...
    開封第一講書人閱讀 30,745評論 0 21
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽祖驱。三九已至握恳,卻和暖如春,著一層夾襖步出監(jiān)牢的瞬間捺僻,已是汗流浹背乡洼。 一陣腳步聲響...
    開封第一講書人閱讀 31,983評論 1 266
  • 我被黑心中介騙來泰國打工, 沒想到剛下飛機就差點兒被人妖公主榨干…… 1. 我叫王不留匕坯,地道東北人束昵。 一個月前我還...
    沈念sama閱讀 46,351評論 2 360
  • 正文 我出身青樓,卻偏偏與公主長得像葛峻,于是被迫代替她去往敵國和親锹雏。 傳聞我的和親對象是個殘疾皇子,可洞房花燭夜當晚...
    茶點故事閱讀 43,509評論 2 348

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

  • ??JavaScript 與 HTML 之間的交互是通過事件實現(xiàn)的。 ??事件采记,就是文檔或瀏覽器窗口中發(fā)生的一些特...
    霜天曉閱讀 3,475評論 1 11
  • 事件是一種異步編程的實現(xiàn)方式佣耐,本質(zhì)上是程序各個組成部分之間的通信。DOM支持大量的事件唧龄,本節(jié)介紹DOM的事件編程兼砖。...
    許先生__閱讀 931評論 0 3
  • Dom事件 事件是一種異步編程的實現(xiàn)方式,本質(zhì)上是程序各個組成部分之間的通信既棺。DOM支持大量的事件 (一) Eve...
    woow_wu7閱讀 1,767評論 0 1
  • 事件是一種異步編程的實現(xiàn)方式讽挟,本質(zhì)上是程序各個組成部分之間的通信。DOM支持大量的事件丸冕,本節(jié)介紹DOM的事件編程戏挡。...
    周花花啊閱讀 593評論 0 3
  • js之事件機制 1、事件初探 1.1 js事件的概述 JavaScript事件:JavaScript是基于事件驅(qū)動...
    道無虛閱讀 2,339評論 1 3