事件監(jiān)聽溪北,事件代理

題目1: DOM0 事件和DOM2級在事件監(jiān)聽使用方式上有什么區(qū)別桐绒?

DOM0級事件,添加多個事件處理程序時, 會出現(xiàn)后面的覆蓋前面的這種情況,
而DOM2則不會出現(xiàn)這種情況.
DOM0有兩種方式,一種是通過內(nèi)聯(lián)方式,另一種是通過on+事件名的方式.
DOM2級事件通過addEventListener和removeEventListener來填加事件監(jiān)聽和刪除事件的監(jiān)聽,接受三個參數(shù),事件類型,事件處理方法,布爾值(true表示事件捕獲階段響應(yīng).false表示事件冒泡階段響應(yīng).默認false),不能通過removeEventListener來移除匿名函數(shù).

題目2: attachEvent與addEventListener的區(qū)別?

  • attachEvent添加的事件只能在冒泡階段處理,addEventListener可以通過參數(shù)來決定處理程序是在冒泡階段還是在捕獲階段處理.
  • 第一個參數(shù)不同,attachEvent第一個參數(shù)是on....,比如onclick,而addEventListener是click,沒有on.
  • this的指代不同,在attachEvent的函數(shù)中this指的是window,而在addEventListener,this指的是被監(jiān)聽的元素.
  • 為一個事件添加多個事件處理程序時,執(zhí)行順序不同:addEventListener會按照添加的順序執(zhí)行,attachEvent添加多個事件處理程序時,在執(zhí)行時沒有規(guī)律.

題目3: 解釋IE事件冒泡和DOM2事件傳播機制之拨?

  • IE事件冒泡:從發(fā)生事件的元素開始,逐步向上傳播.
    事件開始時由最具體的元素接收茉继,然后逐級向上傳播到較為不具體的元素
image.png
  • DOM2級事件規(guī)定事件流包括三個階段,事件捕獲階段蚀乔,處于目標(biāo)階段烁竭,事件冒泡階段,首先發(fā)生的是事件捕獲吉挣,為截取事件提供機會派撕,然后是實際目標(biāo)接收事件,最后是冒泡階段
image.png

題目4:如何阻止事件冒泡睬魂? 如何阻止默認事件终吼?

  • 在IE瀏覽器中
    可以通過設(shè)置cancelBubble=true來阻止事件冒泡,
    通過設(shè)置returnValue=false來阻止默認事件.

  • 在非IE瀏覽器中
    可以用stopPropagation()來阻止事件冒泡和捕獲,
    通過preventDefault()來阻止默認行為.

題目5:有如下代碼,要求當(dāng)點擊每一個元素li時控制臺展示該元素的文本內(nèi)容汉买。不考慮兼容

<ul class="ct">
  <li>這里是</li>
  <li>饑人谷</li>
  <li>前端6班</li>
</ul>
<script>
//todo ...
var ul = document.querySelector('.ct');
ul.addEventListener('click',function(e){
   if(e.target.tagName.toLowerCase() === 'li'){
    console.log(e.target.innerText);
    }
  },false)

題目6: 補全代碼衔峰,要求:

當(dāng)點擊按鈕開頭添加時在<li>這里是</li>元素前添加一個新元素,內(nèi)容為用戶輸入的非空字符串蛙粘;當(dāng)點擊結(jié)尾添加時在最后一個 li 元素后添加用戶輸入的非空字符串.
當(dāng)點擊每一個元素li時控制臺展示該元素的文本內(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>
var ul = document.querySelector('.ct');
var content = document.querySelector('.ipt-add-content');
var start = document.querySelector('#btn-add-start');
var end = document.querySelector('#btn-add-end');

ul.addEventListener('click',function(e){
   if(e.target.tagName.toLowerCase() === 'li'){
    console.log(e.target.innerText);
    }
  },false)

start.addEventListener('click',function(){
    if(/^\s*$/.test(content.value)){       //正則判斷輸入是否為空字符串
        console.log('輸入為空字符');
    }else{
        var newLi = document.createElement('li');
        newLi.innerText = content.value;
        ul.insertBefore(newLi,ul.firstElementChild);  //添加到第一個元素之前
      }
    },false)

end.addEventListener('click',function(){
    if(/^\s*$/.test(content.value)){
        console.log('輸入為空字符');
    }else{
        var newLi = document.createElement('li');
        newLi.innerText = content.value;
        ul.appendChild(newLi,ul.lastElementChild);
      }
    },false)
</script>

題目7: 補全代碼,要求:當(dāng)鼠標(biāo)放置在li元素上出牧,會在img-preview里展示當(dāng)前l(fā)i元素的data-img對應(yīng)的圖片穴肘。

<ul class="ct">
  <li data-img="1.png">鼠標(biāo)放置查看圖片1</li>
  <li data-img="2.png">鼠標(biāo)放置查看圖片2</li>
  <li data-img="3.png">鼠標(biāo)放置查看圖片3</li>
</ul>
<div class="img-preview"></div>
<script>
//你的代碼
var ul = document.querySelector('.ct');
var imgPreview = document.querySelector('.img-preview');
ul.addEventListener('mouseover',function(e){
  if(e.target.tagName.toLowerCase() === 'li'){
    var img = e.target.getAttribute('data-img');
    imgPreview.innerHTML = '<img src = "' + img + '">';
  }
},false)
</script>
最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
  • 序言:七十年代末,一起剝皮案震驚了整個濱河市舔痕,隨后出現(xiàn)的幾起案子评抚,更是在濱河造成了極大的恐慌,老刑警劉巖伯复,帶你破解...
    沈念sama閱讀 222,104評論 6 515
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件慨代,死亡現(xiàn)場離奇詭異,居然都是意外死亡啸如,警方通過查閱死者的電腦和手機侍匙,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 94,816評論 3 399
  • 文/潘曉璐 我一進店門,熙熙樓的掌柜王于貴愁眉苦臉地迎上來叮雳,“玉大人想暗,你說我怎么就攤上這事妇汗。” “怎么了说莫?”我有些...
    開封第一講書人閱讀 168,697評論 0 360
  • 文/不壞的土叔 我叫張陵杨箭,是天一觀的道長。 經(jīng)常有香客問我储狭,道長互婿,這世上最難降的妖魔是什么? 我笑而不...
    開封第一講書人閱讀 59,836評論 1 298
  • 正文 為了忘掉前任晶密,我火速辦了婚禮擒悬,結(jié)果婚禮上,老公的妹妹穿的比我還像新娘稻艰。我一直安慰自己懂牧,他們只是感情好,可當(dāng)我...
    茶點故事閱讀 68,851評論 6 397
  • 文/花漫 我一把揭開白布尊勿。 她就那樣靜靜地躺著僧凤,像睡著了一般。 火紅的嫁衣襯著肌膚如雪元扔。 梳的紋絲不亂的頭發(fā)上躯保,一...
    開封第一講書人閱讀 52,441評論 1 310
  • 那天,我揣著相機與錄音澎语,去河邊找鬼途事。 笑死,一個胖子當(dāng)著我的面吹牛擅羞,可吹牛的內(nèi)容都是我干的尸变。 我是一名探鬼主播,決...
    沈念sama閱讀 40,992評論 3 421
  • 文/蒼蘭香墨 我猛地睜開眼减俏,長吁一口氣:“原來是場噩夢啊……” “哼召烂!你這毒婦竟也來了?” 一聲冷哼從身側(cè)響起娃承,我...
    開封第一講書人閱讀 39,899評論 0 276
  • 序言:老撾萬榮一對情侶失蹤奏夫,失蹤者是張志新(化名)和其女友劉穎,沒想到半個月后历筝,有當(dāng)?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體酗昼,經(jīng)...
    沈念sama閱讀 46,457評論 1 318
  • 正文 獨居荒郊野嶺守林人離奇死亡,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點故事閱讀 38,529評論 3 341
  • 正文 我和宋清朗相戀三年梳猪,在試婚紗的時候發(fā)現(xiàn)自己被綠了麻削。 大學(xué)時的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片。...
    茶點故事閱讀 40,664評論 1 352
  • 序言:一個原本活蹦亂跳的男人離奇死亡,死狀恐怖碟婆,靈堂內(nèi)的尸體忽然破棺而出,到底是詐尸還是另有隱情惕稻,我是刑警寧澤竖共,帶...
    沈念sama閱讀 36,346評論 5 350
  • 正文 年R本政府宣布,位于F島的核電站俺祠,受9級特大地震影響公给,放射性物質(zhì)發(fā)生泄漏。R本人自食惡果不足惜蜘渣,卻給世界環(huán)境...
    茶點故事閱讀 42,025評論 3 334
  • 文/蒙蒙 一淌铐、第九天 我趴在偏房一處隱蔽的房頂上張望。 院中可真熱鬧蔫缸,春花似錦腿准、人聲如沸艺智。這莊子的主人今日做“春日...
    開封第一講書人閱讀 32,511評論 0 24
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽姓惑。三九已至捧杉,卻和暖如春桩盲,著一層夾襖步出監(jiān)牢的瞬間廊蜒,已是汗流浹背悠抹。 一陣腳步聲響...
    開封第一講書人閱讀 33,611評論 1 272
  • 我被黑心中介騙來泰國打工防症, 沒想到剛下飛機就差點兒被人妖公主榨干…… 1. 我叫王不留孟辑,地道東北人。 一個月前我還...
    沈念sama閱讀 49,081評論 3 377
  • 正文 我出身青樓蔫敲,卻偏偏與公主長得像饲嗽,于是被迫代替她去往敵國和親。 傳聞我的和親對象是個殘疾皇子燕偶,可洞房花燭夜當(dāng)晚...
    茶點故事閱讀 45,675評論 2 359

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

  • DOM0 事件和DOM2級在事件監(jiān)聽使用方式上有什么區(qū)別喝噪? Dom0中的事件處理函數(shù)DOM0中通過on開頭加上事件...
    饑人谷_小霾閱讀 456評論 0 0
  • 1.何謂事件 用戶和網(wǎng)頁交互時的行為,動作,稱之為事件; 2.監(jiān)視事件 現(xiàn)實生活中,為了監(jiān)視車輛是否違章指么,通過在紅...
    草鞋弟閱讀 613評論 0 0
  • 題目1: DOM0 事件和DOM2級在事件監(jiān)聽使用方式上有什么區(qū)別酝惧? Dom0級Dom0級事件處理程序是將一個函數(shù)...
    QQQQQCY閱讀 319評論 0 0
  • 如何批量操作 css 如何獲取 DOM 計算后的樣式 使用getComputedStyle獲取元素計算后的樣式 實...
    _Dot912閱讀 560評論 1 3
  • 題目1: DOM0 事件和DOM2級在事件監(jiān)聽使用方式上有什么區(qū)別? DOM0事件處理程序伯诬,事件名以'on'開頭,...
    饑人谷_Leon閱讀 222評論 0 0