进阶任务9:事件

2017-11-11  本文已影响0人  饥人谷_一叶之秋

题目1: DOM0 事件和DOM2级在事件监听使用方式上有什么区别?

例:
//添加事件处理程序
var btn = document.querySelector("#btn")
btn.onclick = function (){
     alert(this.id);
}
//删除事件处理程序
btn.onclick = null;
var btn=document.querySelector("#btn");
var handler=function(){
    alert(this.id);
}
// 指定事件处理程序
btn.addEventListener("click",handler,false);
// 删除事件处理程序
btn.removeEventListener("click",handler,false);

题目2: attachEvent与addEventListener的区别?

题目3: 解释IE事件冒泡和DOM2事件传播机制?

image.png image.png

题目4:如何阻止事件冒泡? 如何阻止默认事件?

题目5:有如下代码,要求当点击每一个元素li时控制台展示该元素的文本内容。不考虑兼容

<ul class="ct">
    <li>这里是</li>
    <li>饥人谷</li>
    <li>前端6班</li>
</ul>
<script>
 var modal = document.querySelector(".ct")
   modal.addEventListener('click', function(e){
     console.log(e.target.innerText);
})
</script>

题目6: 补全代码,要求:

当点击按钮开头添加时在<li>这里是</li>元素前添加一个新元素,内容为用户输入的非空字符串;当点击结尾添加时在最后一个 li 元素后添加用户输入的非空字符串.
当点击每一个元素li时控制台展示该元素的文本内容。

<ul class="ct">
    <li>这里是</li>
    <li>饥人谷</li>
    <li>任务班</li>
</ul>
<input class="ipt-add-content" placeholder="添加内容"/>
<button id="btn-add-start">开头添加</button>
<button id="btn-add-end">结尾添加</button>
<script>
     var ul = document.querySelector('.ct')
     var addStart = document.querySelector('#btn-add-start')
     var addEnd = document.querySelector('#btn-add-end')
     var addIpt = document.querySelector('.ipt-add-content')
     ul.addEventListener('click',function(e){
         var target = e.target
         console.log(target.innerText)
   })
   addStart.addEventListener('click',function(){
       var newLi = document.createElement('li')
       if(addIpt.value)  {
           newLi.innerHTML = addIpt.value
           var li = document.querySelectorAll('.ct li')
           ul.insertBefore(newLi,li[0])
           addIpt.value = ''
       }
   })
   addEnd.addEventListener('click',function(){
       var newLi = document.createElement('li')
       if(addIpt.value)  {
           newLi.innerHTML = addIpt.value
           ul.appendChild(newLi)
           addIpt.value = ''
           }
   })
</script>

题目7: 补全代码,要求:当鼠标放置在li元素上,会在img-preview里展示当前li元素的data-img对应的图片。

<ul class="ct">
    <li data-img="1.png">鼠标放置查看图片1</li>
    <li data-img="2.png">鼠标放置查看图片2</li>
    <li data-img="3.png">鼠标放置查看图片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 = '<img src="' + dataImg + '">'
    });
}
  
</script>
上一篇 下一篇

猜你喜欢

热点阅读