程序员饥人谷技术博客

DOM事件

2017-08-07  本文已影响0人  liushaung

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

attachEvent与addEventctener的区别?

解释IE事件冒泡和DOM2事件传播机制?

如何阻止事件冒泡? 如何阻止默认事件?

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

<ul class="ct">
  <li>这里是</li>
  <li>饥人谷</li>
  <li>前端6班</li>
</ul>
<script>
  var ct = document.querySelector('.ct')

  ct.addEventListener('click', function (e) {
  var target = e.target
    if (target.tagName.toLowerCase() === 'li') {
      console.log(target.innerText)
    }
  })
</script>

补全代码,要求:

补全代码,要求:当鼠标放置在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')
  var imgBox = document.querySelector('.img-preview')

  ct.addEventListener('mouseover', function (e) {
    var target = e.target
    if (target.tagName.toLowerCase() === 'li') {
      var img = document.createElement('img')
      img.src = target.getAttribute('data-img')
      imgBox.innerHTML = ''
      imgBox.appendChild(img)
    }
  })
  ct.addEventListener('mouseout', function (e) {
    var target = e.target
    if (target.tagName.toLowerCase() === 'li') {
      imgBox.innerHTML = ''
    }
  })
</script>
上一篇 下一篇

猜你喜欢

热点阅读