前端JavaScript篇之addEventListener()方法的参数和使用

news2024/9/24 17:20:44

目录

  • addEventListener()方法的参数和使用
    • 参数和使用
      • type
      • listener
      • options
      • useCapture
      • wantsUntrusted


addEventListener()方法的参数和使用

addEventListener() 是 JavaScript 中用于向指定元素添加事件监听器的方法。这个方法通常用于处理用户交互,比如点击、鼠标悬停等操作。

参数和使用

type

表示要监听的事件类型,比如 “click”(点击)、“mouseover”(鼠标悬停)等。

element.addEventListener('click', () => {
  // 在这里放置点击事件的处理代码
})
  • 注意事项:确保 type 参数与所需的事件类型匹配,例如 “click”、“mouseover” 等。

listener

表示在事件触发时要调用的函数或处理程序。

const element = document.getElementById('myButton') // 假设你有一个 ID 为 "myButton" 的按钮

const handleClick = () => {
  console.log('按钮被点击了!')
}

element.addEventListener('click', handleClick)

请添加图片描述

  • 注意事项listener 参数可以是一个具名函数,也可以是匿名函数,用来定义事件触发时执行的代码。

options

一个可选的对象,包含有关事件监听的配置信息,比如 { once: true } 表示只监听一次事件。

<!DOCTYPE html>
<html lang="en">
  <head>
    <meta charset="UTF-8" />
    <meta name="viewport" content="width=device-width, initial-scale=1.0" />
    <title>Scroll Event Example</title>
    <style>
      #myElement {
        height: 200px;
        overflow: auto;
        border: 1px solid #000;
      }
    </style>
  </head>
  <body>
    <div id="myElement">
      <p>
        这是一个滚动区域。向下滚动以触发滚动事件。这是一个滚动区域。向下滚动以触发滚动事件。这是一个滚动区域。向下滚动以触发滚动事件。这是一个滚动区域。向下滚动以触发滚动事件。这是一个滚动区域。向下滚动以触发滚动事件。这是一个滚动区域。向下滚动以触发滚动事件。这是一个滚动区域。向下滚动以触发滚动事件。这是一个滚动区域。向下滚动以触发滚动事件。这是一个滚动区域。向下滚动以触发滚动事件。这是一个滚动区域。向下滚动以触发滚动事件。这是一个滚动区域。向下滚动以触发滚动事件。这是一个滚动区域。向下滚动以触发滚动事件。这是一个滚动区域。向下滚动以触发滚动事件。这是一个滚动区域。向下滚动以触发滚动事件。这是一个滚动区域。向下滚动以触发滚动事件。这是一个滚动区域。向下滚动以触发滚动事件。这是一个滚动区域。向下滚动以触发滚动事件。这是一个滚动区域。向下滚动以触发滚动事件。这是一个滚动区域。向下滚动以触发滚动事件。这是一个滚动区域。向下滚动以触发滚动事件。这是一个滚动区域。向下滚动以触发滚动事件。这是一个滚动区域。向下滚动以触发滚动事件。这是一个滚动区域。向下滚动以触发滚动事件。这是一个滚动区域。向下滚动以触发滚动事件。这是一个滚动区域。向下滚动以触发滚动事件。这是一个滚动区域。向下滚动以触发滚动事件。这是一个滚动区域。向下滚动以触发滚动事件。这是一个滚动区域。向下滚动以触发滚动事件。这是一个滚动区域。向下滚动以触发滚动事件。这是一个滚动区域。向下滚动以触发滚动事件。这是一个滚动区域。向下滚动以触发滚动事件。
      </p>
    </div>

    <script>
      const element = document.getElementById('myElement')

      function handleScroll() {
        console.log('滚动事件发生了!')
      }

      const options = {
        once: true,
        passive: true
      }

      element.addEventListener('scroll', handleScroll, options)
    </script>
  </body>
</html>

请添加图片描述
在这个示例中,我们创建了一个包含 ID 为 “myElement” 的 <div> 元素,它具有固定高度,并且设置了 overflow: auto; 以启用滚动。然后,我们在脚本部分的 JavaScript 中使用 addEventListener 方法将名为 “handleScroll” 的函数绑定到了该元素的 “scroll” 事件上,并传入了选项对象 “options”。

当你在浏览器中打开这个示例时,你会看到一个带有滚动条的区域。当你滚动该区域时,控制台会输出 “滚动事件发生了!”,这表明滚动事件已成功触发,并且选项也已应用。

  • 注意事项options 参数是可选的,可以包含配置信息,比如 { once: true } 只监听一次事件。

useCapture

一个布尔值,表示是否使用捕获阶段进行事件处理。

element.addEventListener('click', handleClick, true)
<!DOCTYPE html>
<html lang="en">
  <head>
    <meta charset="UTF-8" />
    <meta name="viewport" content="width=device-width, initial-scale=1.0" />
    <title>Click Event Example</title>
    <style>
      #myButton {
        padding: 10px 20px;
        background-color: #007bff;
        color: #fff;
        cursor: pointer;
      }
    </style>
  </head>
  <body>
    <button id="myButton">点击我</button>

    <script>
      const element = document.getElementById('myButton')

      function handleClick() {
        console.log('点击事件发生了!')
      }

      element.addEventListener('click', handleClick, true)
    </script>
  </body>
</html>

请添加图片描述

在这个示例中,我们创建了一个按钮,该按钮具有 ID 为 “myButton”。然后,在脚本部分的 JavaScript 中,我们使用 addEventListener 方法将名为 “handleClick” 的函数绑定到了该按钮的 “click” 事件上,并传入了选项 { capture: true }。这意味着事件处理程序在捕获阶段被触发。

当你在浏览器中打开这个示例时,你会看到一个按钮。当你点击该按钮时,控制台会输出 “点击事件发生了!”,这表明点击事件已成功触发,并且选项也已应用。

  • 注意事项:默认情况下为 false(即使用冒泡阶段),如果设置为 true,则在捕获阶段处理事件。

wantsUntrusted

一个布尔值,表示是否接受未经信任的事件。如果为 true , 则事件处理程序会接收网页自定义的事件。此参数只适用于 Gecko(chrome的默认值为true,其他常规网页的默认值为false),主要用于附加组件的代码和浏览器本身。对于大多数网页开发而言,这个选项并不适用,因为大多数情况下我们处理的事件都是经过信任的。

element.addEventListener('click', handleClick, { wantsUntrusted: true })
  • 注意事项:通常不需要手动设置此选项,除非你确定需要处理未经信任的事件。

持续学习总结记录中,回顾一下上面的内容:
addEventListener() 方法允许我们向特定元素添加不同类型的事件监听器,以便在用户进行交互时执行相应的操作。参数 type 表示要监听的事件类型,listener 表示事件触发时要调用的函数,options 是一个可选的配置对象,useCapture 表示是否使用捕获阶段进行事件处理,wantsUntrusted 表示是否接受未经信任的事件。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/1439322.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

springboot163美食推荐商城的设计与实现

简介 【毕设源码推荐 javaweb 项目】基于springbootvue 的 适用于计算机类毕业设计&#xff0c;课程设计参考与学习用途。仅供学习参考&#xff0c; 不得用于商业或者非法用途&#xff0c;否则&#xff0c;一切后果请用户自负。 看运行截图看 第五章 第四章 获取资料方式 **项…

日历功能——C语言

实现日历功能&#xff0c;输入年份月份&#xff0c;输出日历 #include<stdio.h>int leap_year(int year) {if(year % 4 0 && year % 100 ! 0 || year % 400 0){return 1;}else{return 0;} }int determine_year_month_day(int *day,int month,int year) {if(mo…

计划任务功能优化,应用商店上架软件超过100款,1Panel开源面板v1.9.6发布

2024年2月7日&#xff0c;现代化、开源的Linux服务器运维管理面板1Panel正式发布v1.9.6版本。 在v1.9.5和v1.9.6这两个小版本中&#xff0c;1Panel针对计划任务等功能进行了多项优化和Bug修复。此外&#xff0c;1Panel应用商店新增了3款应用&#xff0c;上架精选软件应用超过1…

vue 实现一个持续时间定时器组件

vue 实现一个定时器组件 效果图子组件父组件 效果图 子组件 新建一个timer.vue文件 <template><span :class"{red: string > 600}">{{ string | formatDurationS }}</span> </template> <script>export default {name: timer,pro…

Redis篇之持久化

一、为什么要进行持久化 Redis是一个基于内存的键值存储系统&#xff0c;但为了保证数据在服务器重启、故障等情况下不丢失。 二、应该怎么持久化 1.RDB持久化 &#xff08;1&#xff09;RDB是什么 RDB全称Redis Database Backup file&#xff08;Redis数据备份文件&#xff…

互联网加竞赛 基于深度学习的视频多目标跟踪实现

文章目录 1 前言2 先上成果3 多目标跟踪的两种方法3.1 方法13.2 方法2 4 Tracking By Detecting的跟踪过程4.1 存在的问题4.2 基于轨迹预测的跟踪方式 5 训练代码6 最后 1 前言 &#x1f525; 优质竞赛项目系列&#xff0c;今天要分享的是 基于深度学习的视频多目标跟踪实现 …

VRRP配置

目录 网络拓扑图 配置要求 配置步骤 网络拓扑图 配置要求 按照图示配置 IP 地址和网关在 SW1&#xff0c;SW2&#xff0c;SW3 上创建 Vlan10 和 Vlan20&#xff0c;对应 IP 网段如图&#xff0c;交换机之间链路允许所有 VLAN 通过在 SW1 和 SW2 上配置 VRRP&#xff0c;要求…

qt/c++实现表情选择框

&#x1f482; 个人主页:pp不会算法^ v ^ &#x1f91f; 版权: 本文由【pp不会算法v】原创、在CSDN首发、需要转载请联系博主 &#x1f4ac; 如果文章对你有帮助、欢迎关注、点赞、收藏(一键三连)和订阅专栏哦 实现功能 。编解码的设计 。映射关系设计 。匹配机制设计 演示效…

DFS深度优先搜索与回溯算法

目录 递归遍历的三步骤&#xff1a; DFS/回溯模板 练习 1.三角形路径和最大搜索 &#xff08;一&#xff09;前序DFS&#xff08;从上至下搜索&#xff0c;实际是暴力解法&#xff0c;测试超时&#xff09; &#xff08;二&#xff09;后序DFS&#xff08;自底向上搜索&am…

pycharm像jupyter一样在控制台查看后台变量

更新下&#xff1a;这个一劳永逸不用一个一个改 https://blog.csdn.net/Onlyone_1314/article/details/109347481 右上角运行

【misc】ctfshow--CTF的一生如履薄冰

解压的附件如下&#xff1a; 666.zip这个压缩包是要密码的&#xff0c;打开txt看一下 这个应该spam encode了 直接解密&#xff1a;spammimic - decode 解密结果为&#xff1a;hppy_n3w_y3ar_every_ctf3r_2024_g0g0g0!!!这个就是压缩包的密码&#xff0c;解压 又是一个加密的…

Centos8保姆级安装教程

1.下载地址 Downloadhttps://www.centos.org/download/ 2.安装教程 第一步创建新的虚拟机 第二步自定义高级 第三步这里是选择系统的兼容性&#xff0c;默认就可以 之后直接下一步 第四步选择稍后安装操作系统 之后点击下一步 第五步选择操作系统Linux 安装的是centos8 64位…

WordPress如何自建txt文本经典语录并随机显示一句话经典语录?

前面跟大家分享的『WordPress集成一言&#xff08;Hitokoto&#xff09;API经典语句功能』一文中就提供有自创API&#xff0c;其中懿古今顶部左上角显示的经典语录用的就是自建一个txt文本文件&#xff0c;然后再在前端网页指定位置随机显示语录。具体操作方法如下&#xff1a;…

网神 SecGate 3600 防火墙 route_ispinfo_import_save 文件上传漏洞复现

0x01 产品简介 网神SecGate 3600防火墙是基于状态检测包过滤和应用级代理的复合型硬件防火墙,是专门面向大中型企业、政府、军队、高校等用户开发的新一代专业防火墙设备,支持外部攻击防范、内网安全、网络访问权限控制、网络流量监控和带宽管理、动态路由、网页内容过滤、邮…

踩坑实录(Third Day)

临近年关&#xff0c;同事们该回家的也都回家了&#xff0c;所以我对工作的欲望不是很强烈&#xff0c;所以就主要是自己学习了一下&#xff0c;在 B 站看看视频&#xff0c;自己敲代码&#xff0c;所以今天没遇到什么坑&#xff0c;但是可以分享一下之前踩到的两个坑。 此为第…

PCIE Order Set

1 Training Sequence Training Sequence是由Order Set(OS) 组成&#xff0c;它们主要是用于bit aligment&#xff0c;symbol aligment&#xff0c;交换物理层的参数。当data_rate 2.5GT or 5GT 它们不会被扰码(scramble)&#xff0c;当date_rate 8GT or higher 根据特殊的规…

Rust开发WASM,WASM Runtime运行

安装wasm runtime curl https://wasmtime.dev/install.sh -sSf | bash 查看wasmtime的安装路径 安装target rustup target add wasm32-wasi 创建测试工程 cargo new wasm_wasi_demo 编译工程 cargo build --target wasm32-wasi 运行 wasmtime ./target/wasm32-wasi/d…

3060ti显卡+cuda12.1+win10编译安装生成fastdeploy的c++与python库

在cuda12中,调用官方发布的fastdeploy会出现报错,故此自行编译fastdeploy库。 官网编译教程:https://github.com/PaddlePaddle/FastDeploy/blob/develop/docs/cn/build_and_install/gpu.md 可选编译选项 编译选项 无论是在何平台编译,编译时仅根据需求修改如下选项,勿…

C语言笔试题之实现C库函数 strstr()(设置标志位)

实例要求&#xff1a; 1、请你实现C库函数strstr()&#xff08;stdio.h & string.h&#xff09;&#xff0c;请在 haystack 字符串中找出 needle 字符串的第一个匹配项的下标&#xff08;下标从 0 开始&#xff09;&#xff1b;2、函数声明&#xff1a;int strStr(char* h…

使用maven命令安装Oracle的jar包到本地仓库

mvn install:install-file -DgroupIdcom.oracle -DartifactIdojdbc6 -Dversion11.2.0.4 -Dpackagingjar -DfileD:\ojdbc6-11.2.0.4.jar ojdbc6-11.2.0.4.jar 下载 链接&#xff1a;https://pan.baidu.com/s/1SqO3Ug7KF8kGr9-jOy3MJQ 提取码&#xff1a;36p9