【Web】0基础学Web—事件对象、事件委托(事件代理)——星级评论案例

0基础学Web—事件对象、事件委托(事件代理)——星级评论案例

  • 事件对象
    • 关闭鼠标右键的点击事件
    • 关闭鼠标滚轮的事件
    • 点击的目标对象
    • 点击鼠标的左键0 滚轮1 右键2
    • 获得被点击的节点的名称
    • 或取相对于浏览器左上角的距离(会受页面滚动条的影响)
    • 获取相对于文档左上角的距离(不受滚动条的影响)
  • 事件委托—星级评论案例

事件对象

<body><button>点击</button>
</body>

关闭鼠标右键的点击事件

<script>_button.addEventListener("contextmenu", function (event) {event.preventDefault()     })
</script>

关闭鼠标滚轮的事件

<script>_button.addEventListener("mousedown", function (event) {event.preventDefault()console.log(event.button)})
</script>

点击的目标对象

<script>_button.onclick = function (event) {console.log(event.target)}
</script>

点击鼠标的左键0 滚轮1 右键2

<script>_button.onclick = function (event) {console.log(event.button)}
</script>

获得被点击的节点的名称

<script>_button.onclick = function (event) {console.log(event.target.nodeName)}
</script>

或取相对于浏览器左上角的距离(会受页面滚动条的影响)

<script>_button.onclick = function (event) {console.log(event.clientX, event.clientY)}
</script>

获取相对于文档左上角的距离(不受滚动条的影响)

<script>_button.onclick = function (event) {console.log(event.pageX, event.pageY)}
</script>

事件委托—星级评论案例

<style>.active {color: red;}
</style><body><div class="wrapper"><div class="first"><span class="active"></span><span></span><span></span><span></span><span></span></div></div><script>//事件代理实现星级评论let _first = document.querySelector('.first')let _spans = document.querySelectorAll('span')_first.onclick = function (event) {let index = [..._spans].indexOf(event.target)console.log(index)for (const i in _spans) {if (i <= index) {_spans[i].classList.add('active')} else {if (_spans[i].classList != undefined) {_spans[i].classList.remove('active')}}}}</script>
</body>

在这里插入图片描述

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

如若内容造成侵权/违法违规/事实不符,请联系长河编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

el-table 多级表头

1.结构 <el-table:data"tableData"border:height"700"style"width: 100% !important; overflow: auto":header-cell-style"{ background: #becee1, color: #333 }":cell-style"{ padding: 5px }"><template v-for…

计算机网络基础——网络协议

""" 资料的搬运工 """ 网络协议是为计算机网络中进行数据交换而建立的规则、标准或者说是约定的集合。 1、网络层次划分 OSI七层网络模型 1&#xff09;物理层 确保原始的数据可在各种物理媒体上传输 中继器&#xff08;放大器&#xff09;和集…

源代码编译安装X11及相关库、vim,配置vim(2)

一、编译安装vim 编译时的cofigure选项如下.只有上一步的X11的包安装全了&#xff08;具体哪些是必须的&#xff0c;哪些是多余的没验证&#xff09;&#xff0c;configure才能认为X的库文件和头文件是可以用的。打开多个编程语言的支持特性。 ./configure --prefixpwd/mybui…

Numpy数组的属性

NumPy中最重要的一个特点就是其n维数组对象&#xff0c;即ndarray(别名array)对象&#xff0c;该对象具有矢量算术能力和复杂的广播能力&#xff0c;可以执行一些科学计算。不同于Python内置的数组类型&#xff0c; array对象拥有对高维数组的处理能力&#xff0c;这也是数值计…

如何隐藏 Nginx 版本号 并自定义服务器信息,提升安全性

&#x1f3e1;作者主页&#xff1a;点击&#xff01; Nginx-从零开始的服务器之旅专栏&#xff1a;点击&#xff01; &#x1f427;Linux高级管理防护和群集专栏&#xff1a;点击&#xff01;点击&#xff01;点击&#xff01; ⏰️创作时间&#xff1a;2025年1月8日8点14分…

ProtonBase 荣获 Datafun “数智技术最佳探索奖”

2024年&#xff0c;数智领域迎来技术创新的高峰&#xff0c;尖端技术和用户案例呈现井喷式增长&#xff0c;成为引领时代潮流的关键词。DataFun 社区作为数智前沿阵地&#xff0c;汇聚全球数智精英&#xff0c;推动技术革新和知识共享&#xff0c;助力技术加速发展。 由 DataFu…

用豆包MarsCode IDE打造精美数据大屏:从零开始的指南

原标题&#xff1a;用豆包MarsCode IDE&#xff0c;从0到1画出精美数据大屏&#xff01; 豆包MarsCode IDE 是一个云端 AI IDE 平台&#xff0c;通过内置的 AI 编程助手&#xff0c;开箱即用的开发环境&#xff0c;可以帮助开发者更专注于各类项目的开发。 作为一名前端开发工…

/src/utils/request.ts:axios 请求封装,适用于需要统一处理请求和响应的场景

文章目录 数据结构解释1. 核心功能2. 代码结构分析请求拦截器响应拦截器 3. 改进建议4. 总结 console.log(Intercepted Response:, JSON.stringify(response));{"data": {"code": 0,"msg": "成功","data": {"id":…

LabVIEW调用不定长数组 DLL数组

在使用 LabVIEW 调用 DLL 库函数时&#xff0c;如果函数中的结构体包含不定长数组&#xff0c;直接通过 调用库函数节点&#xff08;Call Library Function Node&#xff09; 调用通常会遇到问题。这是因为 LabVIEW 需要与 DLL 中的数据结构完全匹配&#xff0c;而包含不定长数…

课题推荐——基于GPS的无人机自主着陆系统设计

关于“基于GPS的无人机自主着陆系统设计”的详细展开&#xff0c;包括项目背景、具体内容、实施步骤和创新点。如需帮助&#xff0c;或有导航、定位滤波相关的代码定制需求&#xff0c;请点击文末卡片联系作者 文章目录 项目背景具体内容实施步骤相关例程MATLAB例程python例程 …

深入Android架构(从线程到AIDL)_18 SurfaceView的UI多线程02

目录 2、 使用SurfaceView画2D图 范例一 设计GameLoop(把小线程移出来) 范例二 2、 使用SurfaceView画2D图 范例一 以SurfaceView绘出Bitmap图像设计SpriteView类别来实作SurfaceHolder.Callback接口首先来看个简单的程序&#xff0c;显示出一个Bitmap图像。这个图像就构…

Redis Java 集成到 Spring Boot

Hi~&#xff01;这里是奋斗的明志&#xff0c;很荣幸您能阅读我的文章&#xff0c;诚请评论指点&#xff0c;欢迎欢迎 ~~ &#x1f331;&#x1f331;个人主页&#xff1a;奋斗的明志 &#x1f331;&#x1f331;所属专栏&#xff1a;Redis &#x1f4da;本系列文章为个人学习笔…

鸿蒙开发(29)弹性布局 (Flex)

概述 弹性布局&#xff08;Flex&#xff09;提供更加有效的方式对容器中的子元素进行排列、对齐和分配剩余空间。常用于页面头部导航栏的均匀分布、页面框架的搭建、多行数据的排列等。 容器默认存在主轴与交叉轴&#xff0c;子元素默认沿主轴排列&#xff0c;子元素在主轴方…

LangChain速成课程_构建基于OpenAI_LLM的应用

思维导图 什么是LangChain 特点描述基于语言模型LangChain 是一个专为语言模型&#xff08;如 GPT-4&#xff09;设计的开发框架。模型输入/输出支持灵活的模型输入和输出处理&#xff0c;可以适应各种不同的应用需求。数据感知能够将语言模型与其他数据源&#xff08;如维基百…

将txt转成excel正则化公式的调整

将训练的结果转换成excel是送到画图的关键&#xff0c;但是在转的过程中出现了问题&#xff0c;发现是正则化公式的结果。 使用网站进行调试&#xff0c;最终可以转了。下面是调试的工具以及调试好的代码。 regex101: build, test, and debug regex 上面是正则化公式&#xf…

Linux的proc目录与什么有关?【以及它里面的文件各自记录着什么信息】

在 Linux 系统中&#xff0c;/proc 目录是一个虚拟文件系统&#xff0c;提供了关于内核、进程和系统状态的实时信息。它与系统的 内核 和 进程 运行状态紧密相关&#xff0c;是系统管理员、开发人员和用户了解系统运行状况的重要途径。 /proc 目录的名称来源于 “process”&am…

28、使用StreamPark管理作业中,关于默认环境变量设置和默认动态参数设置的修改

在使用过一段时间的streampark后&#xff0c;发现flink on k8s作业配置过于繁琐了&#xff0c;特别是pod-template.yaml的编写&#xff08;主要是环境变量设置&#xff0c;环境变量关系着前面的日志插件中通过环境变量获取作业名称&#xff09;&#xff0c;动态参数的编写&…

springboot + vue+elementUI图片上传流程

1.实现背景 前端上传一张图片&#xff0c;存到后端数据库&#xff0c;并将图片回显到页面上。上传组件使用现成的elementUI的el-upload。、 2.前端页面 <el-uploadclass"upload-demo"action"http://xxxx.xxx.xxx:9090/file/upload" :show-file-list&q…

《HeadFirst设计模式》笔记(上)

设计模式的目录&#xff1a; 1 设计模式介绍 要不断去学习如何利用其它开发人员的智慧与经验。学习前人的正统思想。 我们认为《Head First》的读者是一位学习者。 一些Head First的学习原则&#xff1a; 使其可视化将文字放在相关图形内部或附近&#xff0c;而不是放在底部…

TensorRT-LLM中的MoE并行推理

2种并行方式&#xff1a; moe_tp_size&#xff1a;按照维度切分&#xff0c;每个GPU拥有所有Expert的一部分权重。 moe_ep_size: 按照Expert切分&#xff0c;每个GPU有用一部分Expert的所有权重。 二者可以搭配一起使用。 限制&#xff1a;二者的乘积&#xff0c;必须等于模…