事件

2017-09-27  本文已影响0人  727上上上

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

attachEvent与addEventListener的区别?

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

事件冒泡:事件开始时由最具体的元素接收,然后逐级向上传播到较为不具体的元素
DOM2级事件:首先发生的是事件捕获,为截取事件提供机会,然后是实际目标接收事件,最后是冒泡阶段

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

      <!-- 有如下代码,要求当点击每一个元素li时控制台展示该元素的文本内容。不考虑兼容 -->
      <ul class="ct">
          <li>这里是</li>
          <li>饥人谷</li>
          <li>前端6班</li>
      </ul>
      <script>
      var liNodes= document.querySelectorAll('.ct li')
      var ct= document.querySelector('.ct')
      ct.addEventListener('click',function(e){
          var target= e.target
          console.log(target.innerText)
      })
      </script>
      <!-- 补全代码,要求:当点击按钮开头添加时在<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 liNodes= document.querySelectorAll('.ct li')
          var addS=document.querySelector('#btn-add-start')
          var addE=document.querySelector('#btn-add-end')
          var ct=document.querySelector('.ct')
          var ipt=document.querySelector('.ipt-add-content')
          ct.addEventListener('click',function(e){
          var target= e.target
          console.log(target.innerText)
          })
          addS.addEventListener('click',function(){
              var text= ipt.value
              if(text !=""){
              var node= document.createElement('li')
              node.innerText=ipt.value
              ct.insertBefore(node,ct.firstChild)}
          })
          addE.addEventListener('click',function(){
              var text= ipt.value
              if(text !=""){
              var node= document.createElement('li')
              node.innerText=ipt.value
              ct.appendChild(node)}
          })
      </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'),
                imgP=document.querySelector('.img-preview')

                ct.addEventListener('mouseover',function(e){
                    var dataImg=e.target.getAttribute('data-img')
                    imgP.innerHTML='![]('+dataImg+')'
                })
                ct.addEventListener('mouseout',function(){
                    imgP.innerHTML=''
                })
        </script>
上一篇下一篇

猜你喜欢

热点阅读