zoukankan      html  css  js  c++  java
  • [JavaScript初级面试]8. WEB API

    题目

    • 编写一个通用的事件监听函数
    • 描述事件冒泡的流程
    • 无限下拉的图片列表,如何监听每个图片的点击

    事件绑定

    document.getElementById('btn').addEventListener('click', event => {
      console.log('clicked')
    })
    
    // event.target 触发事件的元素
    // event.preventDefault() 阻止默认行为
    
    

    事件冒泡

    基于DOM树形结构;
    事件顺着出发元素向上冒泡;
    应用场景:时间代理

    // event.stopPropagation() 阻止冒泡,只在当前事件触发节点响应
    

    事件代理

    <div id = "div3">
      <a href="#">a1</a>
      <a href="#">a2</a>
      <a href="#">a3</a>
      <a href="#">a4</a>
      <button>加载更多...</button>
    </div>
    // 点击加载更多,可以产生更多链接;点击每个链接触发不同的动作
    const div = document.getElementById('div3')
    // 统一把子元素的点击事件代理到父元素上,减少代码量
    // 减少浏览器内存占用,不用每个a标签上绑定事件
    // 不可以滥用,瀑布流比较适用
    div.addEventListener('click', event => {
      event.preventDefault()
      const target = event.target
      if(target.nodeNamme === 'A') // 如果是A标签,排除按钮button触发的click事件
      // if(target.matches(selector)判断选择器是不是当前的触发元素
        alert(target.innerHTML)
    })
    

    本文来自博客园,作者:Max力出奇迹,转载请注明原文链接:https://www.cnblogs.com/welody/p/15214515.html

    如果觉得文章不错,欢迎点击推荐

  • 相关阅读:
    Docker管理应用数据
    Docker Swarm mode
    Docker Compose file
    Docker Compose 多容器应用
    MySQL中ORDER BY与LIMIT一起使用(有坑)
    Docker for Java Developers
    Nifi 模板
    Nifi InvokeHttp processor
    Mac上连接nifi
    前端开发环境webstorm搭建
  • 原文地址:https://www.cnblogs.com/welody/p/15214515.html
Copyright © 2011-2022 走看看