首页 > 编程语言 >JavaScript(事件监听,点击事件,事件类型:鼠标事件mouseenter,mouseleave,焦点事件focus,blur,键盘事件Keydown,Keyup,文本事件input)

JavaScript(事件监听,点击事件,事件类型:鼠标事件mouseenter,mouseleave,焦点事件focus,blur,键盘事件Keydown,Keyup,文本事件input)

时间:2024-11-03 23:46:16浏览次数:6  
标签:mouseleave arr random 鼠标 Keyup 事件 addEventListener 监听

事件监听

  • 目标:能够给 DOM元素添加事件监听

什么是事件?

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

什么是事件监听?

  • 就是让程序检测是否有事件产生,一旦有事件触发,就立即调用一个函数做出响应,也称为 绑定事件或者注册事件
  • 比如鼠标经过显示下拉菜单,比如点击可以播放轮播图等等

事件监听

  • 语法:元素对象.addEventListener('事件类型',要执行的函数)

事件监听案例

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <title>Document</title>
</head>
<body>
    <p>来打我呀</p>
    <script>
        // 1.获取DOM对象
        const p1 = document.querySelector('p')
        
        // 2.事件监听
        // 对象.addEventListener('事件',匿名函数要处理的事件)

        p1.addEventListener('click',function(){

            // 要处理的事件
              alert('被电啦')
        })
    </script>
</body>
</html>

事件监听三要素:

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

事件监听版本

  1. DOM L0 事件源.on事件 = function() { }
  2. DOM L2 事件源.addEventListener(事件, 事件处理函数)
  • 区别: on方式会被覆盖,addEventListener方式可绑定多次,拥有事件更多特性,推荐使用

事件类型

鼠标事件(鼠标触发)

  • click:鼠标点击
  • mouseenter:鼠标经过
  • mouseleave:鼠标离开

焦点事件(表单获得光标)

  • focus:获得焦点
  • blur:失去焦点

键盘事件(键盘触发)

  • Keydown:键盘按下触发
  • Keyup:键盘抬起触发

文本事件(表单输入触发)

-input:用户输入事件

随机点名案例(利用定时器)

<!DOCTYPE html>
<html lang="en">

<head>
    <meta charset="UTF-8">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <title>Document</title>
    <style>
        * {
            margin: 0;
            padding: 0;
        }

        h2 {
            text-align: center;
        }

        .box {
            width: 600px;
            margin: 50px auto;
            display: flex;
            font-size: 25px;
            line-height: 40px;
        }

        .qs {

            width: 450px;
            height: 40px;
            color: red;

        }

        .btns {
            text-align: center;
        }

        .btns button {
            width: 120px;
            height: 35px;
            margin: 0 50px;
        }
    </style>
</head>

<body>
    <h2>随机点名</h2>
    <div class="box">
        <span>名字是:</span>
        <div class="qs">这里显示姓名</div>
    </div>
    <div class="btns">
        <button class="start">开始</button>
        <button class="end">结束</button>
    </div>
  <!-- 利用定时器 -->
    <!-- ①	点击开始按钮随机抽取数组的一个数据,放到页面中
    ②	点击结束按钮删除数组当前抽取的一个数据
    ③	当抽取到最后一个数据的时候,两个按钮同时禁用(写点开始里面,只剩最后一个数据不用抽了 -->
<script>
    // 数组
    const arr = ['tt','yy','uu','ii','oo','hh','jj','mm']
    
    //    得到随机名字
    // console.log(arr[random]);
    let times=''
    let random =''
    // 获取DOM对象
    const qs1 = document.querySelector('.qs')// 名字
    const end1 = document.querySelector('.end')
    //  开始按钮
    const start1 = document.querySelector('.start')
    // 事件监听 当点击开始按钮,随机生成数组里的名字
    start1.addEventListener('click',function(){
   
          // 定时函数
      
       times= setInterval(function(){
        
         // 获取随机数
       random = Math.floor(Math.random() *arr.length)
         qs1.innerHTML=arr[random]
      
        
         
   },100)
   if(arr.length ===1){
            start1.disabled=end1.disabled=true
         }
    })
   
//   结束
end1.addEventListener('click',function(){
    clearInterval(times)
      //  删除获取到的数组元素
      arr.splice(random,1)
      console.log(arr);
      
})

</script>

</body>

</html>

标签:mouseleave,arr,random,鼠标,Keyup,事件,addEventListener,监听
From: https://blog.csdn.net/2301_81256766/article/details/143473354

相关文章

  • JavaScript 事件监听
    一事件绑定点击查看代码1.通过HTML标签中的事件属性进行绑定<inputtype="button"onclick='on()’>functionon(){alert("我被点了");}2.通过DOM元素属性绑定<inputtype="button"id="btn">document.getElementById("btn").o......
  • 在 .NET 中深入了解事件总线的使用与实现
    引言在现代软件架构中,尤其是微服务和事件驱动设计中,事件总线(EventBus)是实现组件间解耦和异步通信的重要工具。事件总线通过允许不同组件之间以松耦合的方式进行交互,从而提升了系统的灵活性和可维护性。本文将详细探讨在.NET中实现事件总线的方式,包括其工作原理、使用方法以及......
  • Nuxt.js 应用中的 nitro:config 事件钩子详解
    title:Nuxt.js应用中的nitro:config事件钩子详解date:2024/11/2updated:2024/11/2author:cmdragonexcerpt:nitro:config是Nuxt3中的一个生命周期钩子,允许开发者在初始化Nitro之前自定义Nitro的配置。Nitro是Nuxt3的服务器引擎,负责处理请求、渲染......
  • Nuxt.js 应用中的 components:extend 事件钩子详解
    title:Nuxt.js应用中的components:extend事件钩子详解date:2024/11/1updated:2024/11/1author:cmdragonexcerpt:components:extend是Nuxt.js中的一个生命周期钩子,允许开发者扩展新的组件到项目中。通过这个钩子,开发者可以动态地添加额外的组件,从而增强项目......
  • Nuxt.js 应用中的 nitro:config 事件钩子详解
    title:Nuxt.js应用中的nitro:config事件钩子详解date:2024/11/2updated:2024/11/2author:cmdragonexcerpt:nitro:config是Nuxt3中的一个生命周期钩子,允许开发者在初始化Nitro之前自定义Nitro的配置。Nitro是Nuxt3的服务器引擎,负责处理请求、渲染响应和......
  • 记录一次大炮打蚊子的modbustcp通讯连接异常问题定位事件
    一.问题描述某种场景下,安装有Ubuntu22系统的设备A开机后,1-2min内设备E遥控器不能遥控设备A移动,之后恢复正常。二.设备组网设备A和设备C之间使用modbustcp协议进行通讯。三.首战3.1查看日志放开该端口的modbus查询帧日志打印,发现整体的帧格式,发现返回了modbus数据帧,但是返......
  • [编程笔记] 搞人心态的代码含毒事件 “svn无法成功完成操作因为文件包含病毒或潜在的
    今天突然冒出来的问题,烦死了! svn拉取代码报毒了,不用想,基本就是下面几个可能性:1、某人提交的代码有毒2、电脑上的第三方杀毒软件引发3、WindowsDefender误判报毒的代码是一个dll文件,鬼知道写的什么,没有去深究,杀毒软件最近......
  • 在Spring中实现事件发布与监听:实用指南
    Spring框架事件机制的背景和重要性背景解耦设计:在复杂的应用程序中,组件之间的紧密耦合会导致代码难以维护和扩展。事件机制提供了一种解耦的方式,允许组件通过事件进行通信,而无需直接依赖。异步处理:事件机制支持异步处理,可以在不阻塞主线程的情况下处理耗时操作,提高应用的......
  • 安卓dispatchKeyEvent事件
    示例:publicclassMyActivityextendsActivity{@OverridepublicbooleandispatchKeyEvent(KeyEventevent){//检查是否按下了回退键(通常是物理按键或者是导航键)if(event.getKeyCode()==KeyEvent.KEYCODE_BACK){//检查事件类......