webApi第二天

91 阅读1分钟

事件

事件是在编程时系统内发生的动作或者发生的事情,比如用户在网页上一个

事件监听

①就是让程序检测是否有事件产生,一旦有事件触发,就立即调用一个函数做出响应,也称为 注册事件

元素.addEventListener('事件', 要执行函数) 

②事件监听三要素:

  • 事件源: 那个dom元素被事件触发了,要获取dom元素
  • 事件: 用什么方式触发,比如鼠标单击 click、鼠标经过 mouseover 等
  • 事件调用的函数: 要做什么事

③注意:

  • 事件类型要加引号
  • 函数是点击之后再去执行,每次点击都会执行一次
let btn = document.querySelector('button');
btn.addEventListener('click', function () {
        console.log('被点击了');
      });

事件监听版本

①DOM L0

  • 事件源.on事件 = function() { }

②DOM L2

  • 事件源.addEventListener(事件, 事件处理函数)

③发展史:

  • DOM L0 :是 DOM 的发展的第一个版本; L:level
  • DOM L1:DOM级别1 于1998年10月1日成为W3C推荐标准
  • DOM L2:使用addEventListener注册事件
  • DOM L3: DOM3级事件模块在DOM2级事件的基础上重新定义了这些事件,也添加了一些新事件类型

事件类型

①鼠标事件:鼠标触发

Ⅰ、click 鼠标点击

  • mouseenter 鼠标经过
  • mouseleave 鼠标离开
<body>
  	<div></div>
    <script>
      // 获取div元素
      let div = document.querySelector('div');
      // 绑定不同的事件
      div.addEventListener("click",function () {
      console.log("click 鼠标点击事件");
      })

      // 鼠标经过元素
      div.addEventListener("mouseenter",function () {
      console.log("mouseenter 鼠标经过");
      })

      // 鼠标离开元素
      div.addEventListener("mouseleave",function () {
      console.log("mouseleave 鼠标离开");
      })

      // 鼠标经过
      div.addEventListener("mouseover",function () {
      console.log("mouseover 鼠标经过");
      })

      // 鼠标离开
      div.addEventListener("mouseout",function () {
      console.log("mouseout 离开");
      })
    </script>
  </body>

②焦点事件:表单获得光标

  • focus 获得焦点
  • blur 失去焦点
<body>
  	 <!-- 只有表单 元素 有获得焦点 失去焦点事件 -->
    <input type="text" />
    <script>
	// 获得焦点
      input.addEventListener("focus",function () {
      console.log("输入框 获得焦点 ");
      document.body.style.backgroundColor='#000'
      })

      // 失去焦点 
      input.addEventListener("blur",function () {
      console.log("输入框 失去焦点");
      document.body.style.backgroundColor='#fff'
      })
    </script>
  </body>

③键盘事件:键盘触发

  • Keydown 键盘按下触发
  • Keyup 键盘抬起触发
<body>
    <script>
	// 键盘按下事件 div不行 表单可以 
      // 给body标签添加比较多
      document.body.addEventListener("keydown",function () {
      console.log("keydown 按下");
      })
      // 键盘抬起
      document.body.addEventListener("keyup",function () {
      console.log("keyup 抬起");
      })
    </script>
  </body>

④文本事件:表单输入触发

  • input 用户输入事件
<body>
    <input type="text" />
    <script>
      // 输入事件 输入框
      input.addEventListener("input",function () {
      console.log("只要你在我的输入框输入了内容,我就触发");
      })
    </script>
  </body>

批量给标签绑定事件

 <body>
    <ul>
      <li>1</li>
      <li>2</li>
      <li>3</li>
      <li>4</li>
      <li>5</li>
      <li>6</li>
      <li>7</li>
      <li>8</li>
      <li>9</li>
      <li>10</li>
    </ul>
    <script>
      // 点击每一个li标签 都可以输出 你好
      // 获取li标签数组
      let liList=document.querySelectorAll("li");
      // 循环
      for (let index = 0; index < liList.length; index++) {
        // 给每一个li标签绑定点击事件
        liList[index].addEventListener("click",function () {
          console.log("你好");
        })   
      }     
    </script>

绑定事件的补充

以下两种方式都不推荐 了解即可

<body>
    //<!-- <button onclick="console.log(123)" >点击</button> -->
    //<!-- <button onclick="show()">点击</button> -->

    <button>点击</button>
    <script>
      // 1 获取dom元素
      let btn = document.querySelector('button');

      // 使用旧方式 L0 第一个版本的方式绑定点击事件  on+事件类型 = 匿名函数
      // on也可以是在 行内 绝对不推荐
      btn.onclick = function () {
        console.log('事件触发啦');
      };
      btn.onclick = function () {
        console.log('事件触发啦');
      };
      btn.onclick = function () {
        console.log('事件触发啦');
      };
      btn.onclick = function () {
        console.log('事件触发啦');
      };

      // addEventListener 对一个事件类型 绑定多个处理函数 
      // on+事件 对一个事件类型 只能绑定一个处理函数
      
      // btn.onclick = show;
      // function show() {
      //   console.log('show');
      // }

      // btn.addEventListener("click",function () {
      //   console.log("show");
      // });
      // btn.addEventListener("click",function () {
      //   console.log("show");
      // });
      // btn.addEventListener("click",function () {
      //   console.log("show");
      // });
      // btn.addEventListener("click",function () {
      //   console.log("show");
      // });
    </script>
  </body>