進(jìn)階9

DOM0 事件和DOM2級(jí)在事件監(jiān)聽使用方式上有什么區(qū)別丰泊?

  • Dom0級(jí)事件處理程序:
    在DOM0級(jí)事件處理程序,事件名以'on'開頭询一,因此click事件的事件處理程序就是onclick求冷、load事件的事件處理程序就是onload侠草。
    DOM0事件監(jiān)聽方式:
    內(nèi)聯(lián)方式朽褪,與CSS內(nèi)聯(lián)樣式相對(duì)

    <input type="button" value="Click Here" onclick="alert('Clicked!');" />
    

    事件處理程序的具體實(shí)現(xiàn)置吓,在頁面其它地方定義

    <input type="button" value="Click Here" onclick="showMessage();" />
    

    DOM2事件監(jiān)聽方式:
    DOM2事件監(jiān)聽方式:
    addEventListener(),參數(shù)列表:

    1.事件類型
    2.事件處理方法
    3.布爾參數(shù)缔赠,如果是true表示在捕獲階段調(diào)用事件處理程序衍锚,如果是false,則是在事件冒泡階段處理

    使用舉例:

    <input id="btnClick" type="button" value="Click Here" />
    
    <script type="text/javascript">
      var btnClick = document.getElementById('btnClick');
      btnClick.addEventListener('click', function() {
         alert(this.id);
      }, false);
    </script>
    

    DOM0和DOM2事件監(jiān)聽使用區(qū)別:DOM2可以為事件添加多個(gè)處理程序

attachEvent與addEventListener的區(qū)別嗤堰?

  • 參數(shù)個(gè)數(shù)不同:attachEvent接收兩個(gè)參數(shù)(事件名稱和方法)戴质,addEventListener接收三個(gè)參數(shù)(事件類型、方法、布爾值)

  • 第一個(gè)參數(shù)意義不同:addEventListener第一個(gè)參數(shù)是事件類型(比如click告匠,load)戈抄,而attachEvent第一個(gè)參數(shù)指明的是事件處理函數(shù)名稱(onclick,onload)

  • 事件處理程序的作用域不相同:addEventListener的作用域是元素本身后专,this是指的觸發(fā)元素呛凶,而attachEvent事件處理程序會(huì)在全局變量內(nèi)運(yùn)行,this是window行贪,所以剛才例子才會(huì)返回undefined,而不是元素id

  • 為一個(gè)事件添加多個(gè)事件處理程序時(shí)模闲,執(zhí)行順序不同:addEventListener添加會(huì)按照添加順序執(zhí)行建瘫,而attachEvent添加多個(gè)事件處理程序時(shí)順序無規(guī)律(添加的方法少的時(shí)候大多是按添加順序的反順序執(zhí)行的,但是添加的多了就無規(guī)律了)

解釋IE事件冒泡和DOM2事件傳播機(jī)制尸折?

  • IE事件冒泡:
    對(duì)一個(gè)例如div這樣的子容器進(jìn)行事件監(jiān)聽啰脚,IE的傳播機(jī)制是從事件目標(biāo)節(jié)點(diǎn)逐步的向上層結(jié)點(diǎn)傳播,直到到達(dá)根結(jié)點(diǎn)
image.png
  • DOM2事件傳播機(jī)制:
    事件開始時(shí)由最大的实夹,不具體的元素接收橄浓,然后逐級(jí)向小的具體元素逐級(jí)傳遞,再反向傳出
image.png

如何阻止事件冒泡亮航? 如何阻止默認(rèn)事件荸实?

阻止事件冒泡:

標(biāo)準(zhǔn)事件模型:

stopPropagation()

IE事件模型:

cancelBubble默認(rèn)為false,設(shè)置為true后可以取消事件冒泡

阻止默認(rèn)事件:

標(biāo)準(zhǔn)事件模型:

preventDefault()

IE事件模型:

returnValue默認(rèn)為true缴淋,設(shè)為false可以取消事件默認(rèn)行為

有如下代碼准给,要求當(dāng)點(diǎn)擊每一個(gè)元素li時(shí)控制臺(tái)展示該元素的文本內(nèi)容。不考慮兼容

<ul class="ct">
    <li>這里是</li>
    <li>饑人谷</li>
    <li>前端6班</li>
</ul>
<script>
//todo ...
</script>
image.png

補(bǔ)全代碼重抖,要求:

當(dāng)點(diǎn)擊按鈕開頭添加時(shí)在<li>這里是</li>元素前添加一個(gè)新元素露氮,內(nèi)容為用戶輸入的非空字符串;
當(dāng)點(diǎn)擊結(jié)尾添加時(shí)在最后一個(gè) li 元素后添加用戶輸入的非空字符串.
當(dāng)點(diǎn)擊每一個(gè)元素li時(shí)控制臺(tái)展示該元素的文本內(nèi)容钟沛。

<ul class="ct">
    <li>這里是</li>
    <li>饑人谷</li>
    <li>任務(wù)班</li>
</ul>
<input class="ipt-add-content" placeholder="添加內(nèi)容"/>
<button id="btn-add-start">開頭添加</button>
<button id="btn-add-end">結(jié)尾添加</button>
<script>
//你的代碼
</script>
image.png

代碼

補(bǔ)全代碼畔规,要求:當(dāng)鼠標(biāo)放置在li元素上,會(huì)在img-preview里展示當(dāng)前l(fā)i元素的data-img對(duì)應(yīng)的圖片恨统。

<ul class="ct">
  <li data-img="https://encrypted-tbn0.gstatic.com/images?q=tbn:ANd9GcQ_ptkO7vx9EJuwH5s77RG-3iJgr5m5S_uuI1BvCe_7ZEM2qMeheA">鼠標(biāo)放置查看圖片1</li>
  <li data-img="https://encrypted-tbn0.gstatic.com/images?q=tbn:ANd9GcRWOW3gGugBOD58u1mL6_uThLR2L7n4PpQo_WPdcY28u5FzKL7n">鼠標(biāo)放置查看圖片2</li>
  <li data-img="https://ws1.sinaimg.cn/large/005GwhDcgy1fig0cbn4mpj305k046t8n.jpg">鼠標(biāo)放置查看圖片3</li>
</ul>
<div class="img-preview"></div>
<script>
//你的代碼
var ct = document.querySelector('.ct'),
childs = ct.querySelectorAll('li'),
preview = document.querySelector('.img-preview');

for(var i=0; i<childs.length; i++){
    childs[i].addEventListener('mouseenter', function(){
        var dataImg = this.getAttribute('data-img');
        preview.innerHTML =  '![](' + dataImg + ')'
    });
}
</script>
最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
  • 序言:七十年代末叁扫,一起剝皮案震驚了整個(gè)濱河市,隨后出現(xiàn)的幾起案子畜埋,更是在濱河造成了極大的恐慌陌兑,老刑警劉巖,帶你破解...
    沈念sama閱讀 216,919評(píng)論 6 502
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件由捎,死亡現(xiàn)場離奇詭異兔综,居然都是意外死亡,警方通過查閱死者的電腦和手機(jī),發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 92,567評(píng)論 3 392
  • 文/潘曉璐 我一進(jìn)店門软驰,熙熙樓的掌柜王于貴愁眉苦臉地迎上來涧窒,“玉大人,你說我怎么就攤上這事锭亏【牢猓” “怎么了?”我有些...
    開封第一講書人閱讀 163,316評(píng)論 0 353
  • 文/不壞的土叔 我叫張陵慧瘤,是天一觀的道長戴已。 經(jīng)常有香客問我,道長锅减,這世上最難降的妖魔是什么糖儡? 我笑而不...
    開封第一講書人閱讀 58,294評(píng)論 1 292
  • 正文 為了忘掉前任,我火速辦了婚禮怔匣,結(jié)果婚禮上握联,老公的妹妹穿的比我還像新娘。我一直安慰自己每瞒,他們只是感情好金闽,可當(dāng)我...
    茶點(diǎn)故事閱讀 67,318評(píng)論 6 390
  • 文/花漫 我一把揭開白布。 她就那樣靜靜地躺著剿骨,像睡著了一般代芜。 火紅的嫁衣襯著肌膚如雪。 梳的紋絲不亂的頭發(fā)上浓利,一...
    開封第一講書人閱讀 51,245評(píng)論 1 299
  • 那天蜒犯,我揣著相機(jī)與錄音,去河邊找鬼荞膘。 笑死罚随,一個(gè)胖子當(dāng)著我的面吹牛,可吹牛的內(nèi)容都是我干的羽资。 我是一名探鬼主播淘菩,決...
    沈念sama閱讀 40,120評(píng)論 3 418
  • 文/蒼蘭香墨 我猛地睜開眼,長吁一口氣:“原來是場噩夢啊……” “哼屠升!你這毒婦竟也來了潮改?” 一聲冷哼從身側(cè)響起,我...
    開封第一講書人閱讀 38,964評(píng)論 0 275
  • 序言:老撾萬榮一對(duì)情侶失蹤腹暖,失蹤者是張志新(化名)和其女友劉穎汇在,沒想到半個(gè)月后,有當(dāng)?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體脏答,經(jīng)...
    沈念sama閱讀 45,376評(píng)論 1 313
  • 正文 獨(dú)居荒郊野嶺守林人離奇死亡糕殉,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點(diǎn)故事閱讀 37,592評(píng)論 2 333
  • 正文 我和宋清朗相戀三年亩鬼,在試婚紗的時(shí)候發(fā)現(xiàn)自己被綠了。 大學(xué)時(shí)的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片阿蝶。...
    茶點(diǎn)故事閱讀 39,764評(píng)論 1 348
  • 序言:一個(gè)原本活蹦亂跳的男人離奇死亡雳锋,死狀恐怖,靈堂內(nèi)的尸體忽然破棺而出羡洁,到底是詐尸還是另有隱情玷过,我是刑警寧澤,帶...
    沈念sama閱讀 35,460評(píng)論 5 344
  • 正文 年R本政府宣布筑煮,位于F島的核電站辛蚊,受9級(jí)特大地震影響,放射性物質(zhì)發(fā)生泄漏真仲。R本人自食惡果不足惜袋马,卻給世界環(huán)境...
    茶點(diǎn)故事閱讀 41,070評(píng)論 3 327
  • 文/蒙蒙 一、第九天 我趴在偏房一處隱蔽的房頂上張望袒餐。 院中可真熱鬧,春花似錦谤狡、人聲如沸灸眼。這莊子的主人今日做“春日...
    開封第一講書人閱讀 31,697評(píng)論 0 22
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽焰宣。三九已至,卻和暖如春捕仔,著一層夾襖步出監(jiān)牢的瞬間匕积,已是汗流浹背。 一陣腳步聲響...
    開封第一講書人閱讀 32,846評(píng)論 1 269
  • 我被黑心中介騙來泰國打工榜跌, 沒想到剛下飛機(jī)就差點(diǎn)兒被人妖公主榨干…… 1. 我叫王不留闪唆,地道東北人。 一個(gè)月前我還...
    沈念sama閱讀 47,819評(píng)論 2 370
  • 正文 我出身青樓钓葫,卻偏偏與公主長得像悄蕾,于是被迫代替她去往敵國和親。 傳聞我的和親對(duì)象是個(gè)殘疾皇子础浮,可洞房花燭夜當(dāng)晚...
    茶點(diǎn)故事閱讀 44,665評(píng)論 2 354

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

  • 1.DOM0 事件和DOM2級(jí)在事件監(jiān)聽使用方式上有什么區(qū)別帆调? DOM0級(jí)事件在DOM0級(jí)事件處理程序,事件名以'...
    24_Magic閱讀 277評(píng)論 0 0
  • 1. DOM0事件和DOM2級(jí)在事件監(jiān)聽使用方式上有什么區(qū)別豆同? 添加方式:DOM0級(jí)事件是通過內(nèi)聯(lián)方式 ,或是...
    饑人谷_哈嚕嚕閱讀 166評(píng)論 0 0
  • 1: DOM0 事件和DOM2級(jí)在事件監(jiān)聽使用方式上有什么區(qū)別番刊? DOM0級(jí)事件處理方式:通過javascript...
    曉風(fēng)殘?jiān)?994閱讀 262評(píng)論 0 0
  • 題目1: DOM0 事件和DOM2級(jí)在事件監(jiān)聽使用方式上有什么區(qū)別? DOM0級(jí)事件:就是把一個(gè)方法賦值給一個(gè)元素...
    Feiyu_有貓病閱讀 288評(píng)論 0 0
  • 題目1: DOM0 事件和DOM2級(jí)在事件監(jiān)聽使用方式上有什么區(qū)別影锈? -DOM0事件監(jiān)聽及使用的本質(zhì)是將事件處理程...
    cheneyzhangch閱讀 267評(píng)論 0 0