首页 > 其他分享 >【Web】0基础学Web—事件对象、事件委托(事件代理)——星级评论案例

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

时间:2025-01-10 16:32:19浏览次数:3  
标签:function Web console log button 事件 星级 event

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

事件对象

<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>

在这里插入图片描述

标签:function,Web,console,log,button,事件,星级,event
From: https://blog.csdn.net/2201_75539182/article/details/144893274

相关文章

  • streamlit实现聊天机器人应用,掌握使用Python构建好看web的页面
     第一个可视化的大模型应用。实现一个带有可视化界面的聊天机器人应用,可以将我们之前实现的聊天机器人转化为一个更加直观、用户友好的,我们的第一个可视化的大模型应用。通过使用Streamlit,我们借助st.columns、st.container、st.chat_input和st.chatmessage等streamlitAPl......
  • 详解SonarQube Web API的使用方法以及典型应用场景(内附python代码)
    SonarQubeWebAPISonarQube的WebAPI是一组HTTPRESTAPI,允许开发人员与SonarQube服务器进行交互。这些API涵盖了SonarQube的各个方面,包括项目管理、问题管理、质量规则和指标等。我们可以在SonarQube的帮助菜单中查看相关使用信息,如下图所示:典型应用场景SonarQubeAPI可......
  • Web安全攻防入门教程——hvv行动详解
    Web安全攻防入门教程Web安全攻防是指在Web应用程序的开发、部署和运行过程中,保护Web应用免受攻击和恶意行为的技术与策略。这个领域不仅涉及防御措施的实现,还包括通过渗透测试、漏洞挖掘和模拟攻击来识别潜在的安全问题。本教程将带......
  • Web安全攻防入门教程——hvv行动详解
    Web安全攻防入门教程Web安全攻防是指在Web应用程序的开发、部署和运行过程中,保护Web应用免受攻击和恶意行为的技术与策略。这个领域不仅涉及防御措施的实现,还包括通过渗透测试、漏洞挖掘和模拟攻击来识别潜在的安全问题。本教程将带你......
  • SD WebUI必备插件安装,菜鸟轻松成高手!
    一个刚学AI绘画的小菜鸟怎么快速成为StableDiffusionde的高手?答案就是SD插件,只要学会使用SD的各种插件,帮你写正向和负向提示词,修复人脸/身体/手指,高清放大图片,指定人物pose,图片微调等等都可以轻松搞定,善用插件是成为高手必经之路。目录1插件安装方法2基础插件介绍3......
  • 【Mac实践Docker】使用Nginx部署Web应用
    Nginx部署Web应用学习资料参考一、安装Docker下载DockerDesktop:启动Docker:验证安装:macOS命令行工具Docker命令二、使用Nginx部署Web应用拉取Nginx镜像创建挂载目录创建容器并挂载目录创建并启动容器:复制配置文件到宿主机:删除容器并重新启动:重新启动容器并挂载目录:......
  • 记录---JS 的蝴蝶效应 —— 事件流
    ......
  • 基于 WEB 开发的高校学籍管理系统设计与实现
    标题:基于WEB开发的高校学籍管理系统设计与实现内容:1.摘要摘要:随着信息技术的不断发展,高校学籍管理系统的信息化建设已成为必然趋势。本文以高校学籍管理系统为研究对象,探讨了基于WEB开发的高校学籍管理系统的设计与实现。通过对系统的需求分析,设计了系统的总体架构和功......
  • 一次web服务失去响应记录
    现象:线上服务无法对接口进行响应,接口全部超时,但是Java进程还是在运行中,jvmGC日志正常。jstack命令查看线程情况: 大量线程处于BLOCKED状态,等待锁0x00000000cbc9b9c8的释放;该锁被持有的线程:scheduling-1,是一个异步线程。 通过观察上图,发现锁在getAccessToken方法中被获取,该......
  • 你真的了解html中的事件绑定吗
    前言:事件的绑定方式主要有两大类:在html中直接绑定和在js中绑定,细分的话可以有三种(js有两种)。函数名或者函数表达式后面紧跟(),则会自动调用。1.内联模式:将函数名直接作为html标签中的属性的属性值-----------这种的缺点是:不符合行为分离的基本规范这种方式叫做内联绑定事件,HTM......