【web前端初级课程】第八章 什么是事件?

目录

一、事件情况汇总

二、标签绑定

三、使用DOM0事件模型

四、使用DOM2事件模型

五、相关练习:图片切换

一、事件情况汇总

事件分为三部分:事件源:绑定事件的标签、事件对象:就是事件产生的相关数据、事件处理函数

84bc329053a44ff793c08bf4cf0da74d.png

二、标签绑定

<div onclick="_click(this)">2222</div>
<script>
	//通过传参形式的形式将事件源传给事件处理函数
	function _click(t){
		console.log(t)
		console.log(this)
	}
</script>

缺点:

1.违背了三层分离原则

2.无法获得事件对象

3.事件源需要在绑定的标签使用this关键传递

三、使用DOM0事件模型

语法结构:绑定事件标签.onXXX=匿名函数(事件处理函数)

<button id="btn" >点击一下</button>
<script>
	var _btn = document.getElementById("btn");
	_btn.onclick = function (event) {
		console.info(event)
		alert("hello,事件")
        console.log(this);
	}
</script>

这种方式完美的解决了三层分离问题,而且默认事件处理函数的第一个参数就是事件对象。

事件触发时,this就是指该事件在dom对象上触发。

四、使用DOM2事件模型

(一)语法结构

标签.addEventListener("xxxxx",匿名函数(事件处理函数))

let btn = document.getElementById("box");
btn.addEventListener("click", function(event){
    alert("ok");
    console.log(this);
}, false);

(二)注意

第一个参数不需要加on,直接写事件名称即可;

第二个参数是事件处理函数,函数第一个参数默认就是事件对象;

第三个参数Boolean值,表示捕获或者冒泡流。(true为捕获,false为冒泡)

(三)取消事件的绑定

dom2事件模型取消事件:div.removeEventListener("click",fn) 

dom0事件模型取消事件:div.onclick = null

五、相关练习:图片切换

练习代码:

<!DOCTYPE html>
<html>
	<head>
		<meta charset="utf-8">
		<title></title>
		<style>
			*{
				padding: 0px;
				margin: 0px;
			}
			.tu{
				position: relative;
			}
			.tu > img{
				width: 100%;
				height: 800px;
				position: absolute;
				display: none;
			}
			ul{
				list-style: none;
				background-color:#550000;
				position: absolute;
				border-radius: 15px;
				left: 45%;
				bottom: 20px;
			}
			ul > li{
				width: 20px;
				height: 20px;
				background-color: #d6d6d6;
				border-radius: 50%;
				float: left;
				margin: 10px;
			}
		</style>
		<script>
			window.onload=()=>{
				let img_all = document.querySelectorAll(".tu > img")
				let i=0
				let timer=setInterval(change,3000)
				
				function change(){
					img_all[i].style.display="none"
					i=++i % img_all.length
					img_all[i].style.display="block"
				}
				
				let one= document.getElementById("one")
				one.onclick=function(event){
					img_all[0].style.display="block"
					img_all[1].style.display="none"
					img_all[2].style.display="none"
					img_all[3].style.display="none"
				}
				let two= document.getElementById("two")
				two.onclick=function(event){
					img_all[0].style.display="none"
					img_all[1].style.display="block"
					img_all[2].style.display="none"
					img_all[3].style.display="none"
				}
				let three= document.getElementById("three")
				three.onclick=function(event){
					img_all[0].style.display="none"
					img_all[1].style.display="none"
					img_all[2].style.display="block"
					img_all[3].style.display="none"
				}
				let four= document.getElementById("four")
				four.onclick=function(event){
					img_all[0].style.display="none"
					img_all[1].style.display="none"
					img_all[2].style.display="none"
					img_all[3].style.display="block"
				}
			}
			let li = document.querySelectorAll("ul > li")
			
		</script>
	</head>
	<body>
		<div class="tu">
			<img style="display: block" src="1.jpg"/>
			<img src="2.jpg"/>
			<img src="3.jpg"/>
			<img src="4.jpg"/>
		</div>
		<ul>
			<li id="one"></li>
			<li id="two"></li>
			<li id="three"></li>
			<li id="four"></li>
		</ul>
	</body>
</html>

都看到这里了,创作不易,大家点个赞再走呗!!- ̗̀(๑ᵔ⌔ᵔ๑)

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

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

Java使用功能方法交换a,b的值,通过构造方法输出姓名、年龄、家庭地址

目录 前言 一、使用功能方法交换a&#xff0c;b的值 1.1运行流程&#xff08;思想&#xff09; 1.2代码段 1.3运行截图 二、通过构造方法输出姓名、年龄、家庭地址 1.1运行流程&#xff08;思想&#xff09; 1.2代码段 1.3运行截图 前言 1.因多重原因&#xff0c;所以我…

愚人节,聊聊那些正在坑人的“新型AI”

几年前的一个愚人节&#xff0c;我们和大家聊过AI技术被作为诈骗工具的情况。很不幸&#xff0c;当时讨论的一些苗头&#xff0c;现在都成了电诈犯罪中屡见不鲜的手段。更可气的是&#xff0c;随着AI技术与应用本身的发展&#xff0c;犯罪分子的AI手段不减反增。一些“新型AI”…

(七)Tomcat源码阅读:Host组件分析

一、概述 Host类中比较重要的类就是HostConfig其它类实现的功能和之前的组件差不多&#xff0c;这里就不多介绍了。 二、阅读源码 1、HostConfig &#xff08;1&#xff09;重要方法 lifecycleEvent&#xff1a; 根据对应的方法设置对应的属性&#xff0c;并调用对应的方…

自己写gpt的软件教程-国内最好的chatgpt软件

GPT-3是一种非常强大的自然语言处理技术&#xff0c;可以为用户生成高质量的文本内容。虽然GPT-3最初是为英文而设计的&#xff0c;但是近年来&#xff0c;GPT-3在中文领域也变得越来越流行。在本篇教程中&#xff0c;我们将详细介绍如何在GPT-3中生成中文内容。 一、准备工作 …

第二天并发篇

一、线程状态 1.新建&#xff08;New&#xff09;&#xff1a;创建线程对象时 2.就绪&#xff08;Runnable&#xff09;&#xff1a;线程调用start方法&#xff0c;有执行资格没有执行权 3.运行&#xff1a;当就绪状态时抢到cpu的执行权之后&#xff0c;进入运行状态 4.阻塞&am…

过程控制系统中的模块技术MTP

在过程自动化行业中&#xff0c;模块化设备概念近年来越来越受欢迎。其中最热门的是MTP。MTP称为模块类型封装&#xff0c;它是过程工业自动化技术用户协会&#xff08;NAMUR&#xff09;提出的过程自动化行业的模块化标准&#xff0c;通过这种模型&#xff0c;开发工作的重点从…

C++(Qt)软件调试---linux下生成/调试Core文件(3)

#软件调试 C(Qt)软件调试—linux下生成/调试Core文件&#xff08;3&#xff09; 文章目录C(Qt)软件调试---linux下生成/调试Core文件&#xff08;3&#xff09;前言1、C生成Core和使用GDB调试1、环境2、C生成Core文件3、使用gdb工具调试core可定位段错误位置&#xff1b;4、修…

【创作赢红包】你是真的“C”——C语言中文件操作函数使用的详细讲解【上篇】

你是真的“c”——C语言中文件操作函数使用的详细讲解~&#x1f60e;前言&#x1f64c;一、 为什么使用文件&#xff1a;&#x1f64c;二、 什么是文件&#xff1a;&#x1f64c;2.1 程序文件2.2 数据文件2.3 文件名3. 文件的打开和关闭3.1 文件指针3.2 文件的打开和关闭4. 文件…

【ansible】实施任务控制

目录 实施任务控制 一&#xff0c;循环&#xff08;迭代&#xff09;--- loop 1&#xff0c;利用loop----item循环迭代任务 2&#xff0c;item---loop循环案例 1&#xff0c;定义item循环列表 2&#xff0c;通过变量应用列表格式 3&#xff0c;字典列表&#xff08;迭代嵌套子…

一个ESP32小东西

之前发了ESP8266&#xff0c;有人评论说玩下ESP32然后就买了几个回来&#xff0c;当然&#xff0c;也想着和大家一起玩介绍下这个开发板开发板Github项目链接https://github.com/Xinyuan-LilyGO/T-QT把仓库的代码下载到本地我们可以用ESP-IDF和Arduino两个SDK来开发ESP32S3ESP-…

回溯算法思想、回溯算法解题模板与回溯算法题目索引(不断更新)

回溯算法 回溯算法是一种试探性的搜索算法&#xff0c;它在解决某些组合问题、优化问题、路径问题等&#xff0c;非常有效。回溯算法的核心思想是通过递归和深度优先搜索&#xff08;DFS&#xff09;来搜索问题的解空间。 细说一下这些问题&#xff1a; 组合问题&#xff1a;N…

初级网络工程师这30道面试题一定得会,建议小白收藏!

你好&#xff0c;这里是网络技术联盟站。 后台有小伙伴想让瑞哥整理一下初级网络工程师面试题&#xff0c;今天我整理出来了&#xff0c;针对初级网络工程师&#xff0c;我们在面试的时候主要考察的是基础概念&#xff0c;下面列举的希望大家可以收藏&#xff0c;平时多看看&a…

活动选择问题 | 贪心算法 1

贪心法是一种算法范式&#xff0c;它逐个构建解决方案&#xff0c;始终选择下一个提供最明显和最直接好处的部分。贪心算法用于优化问题。 如果问题具有以下属性&#xff0c;则可以使用 Greedy 解决优化问题&#xff1a; 在每一步中&#xff0c;我们都可以做出当前看起来最好…

MongoDB 6.0 (四)聚合操作

一、 聚合框架的作用 1. 什么是MongoDB 聚合框架 MongoDB 聚合框架(Aggregation Framework)是一个计算框架,它可以: • 作用在一个或几个集合上; • 对集合中的数据进行的一系列运算; • 将这些数据转化为期望的形式; 从效果而言,聚合框架相当于SQL 查询中的: …

【Mysql系列】——详细剖析数据库“索引”【上篇】

【Mysql系列】——详细剖析数据库中的核心知识【索引】&#x1f60e;前言&#x1f64c;索引索引概述为什么需要索引&#xff1f;索引的优缺点索引结构索引的结构为什么不是二叉树和红黑树&#xff1f;索引的B树结构索引的Hash结构Hash结构索引的特点思考&#xff1a;为什么Inno…

MySQL中多表查询(多表关系:一对多、多对多、一对一,分类:连接查询:内连接、外连接、自连接、联合查询,子查询:标量子查询、列子查询、行子查询、表子查询)

多表关系&#xff1a; 一对多&#xff1a; 多对多&#xff1a; 一对一&#xff1a; 我们发现我们利用DQL中的select语句查询多张表的时候&#xff0c;会出现一个数学现象&#xff0c;叫做笛卡尔积 因此我们可以加上where语句来限定条件&#xff1a; 内连接&#xff1a; 此处in…

计算机网络面试八股文攻略(一) —— OSI 七层模型

一、简述 本系列将对面试中与计算机网络相关的知识进行讲解与分析。 本篇为 OSI 七层网络模型的相关知识。 二、概念 OSI 七层网络模型是国际标准化组织&#xff08;ISO&#xff09;制定的一个用于计算机或通信系统间互联的标准体系。它是一个七层的、抽象的模型体&#xff…

A Causal Debiasing Framework for Unsupervised Salient Object Detection

背景知识 显著性检测 简单就是使用图像处理技术和计算机视觉算法来定位图片中最“显著”的区域。显著区域就是指图片中引人注目的区域或比较重要的区域&#xff0c;例如人眼在观看一幅图片时会首先关注的区域。 chatGPT4的回答 计算机视觉中的显著性检测&#xff08;Visual…

从事6个月软件测试,目前只会功能测试迷茫了...

前言 (来自一位粉丝的投稿)来这个公司大半年&#xff0c;现在主要做的是类似于淘宝的购物商城&#xff0c;以前也做应用系统什么的&#xff0c;可是感觉公司的软件测试岗位都是不着边的&#xff0c;因为做的都是功能测试&#xff0c;来了这么久&#xff0c;没接触过技术性的东…

美丽苏大,清华博士,年轻硕导,招收研究生了!

Datawhale学术 导师&#xff1a;张正超&#xff0c;苏州大学&#xff0c;Datawhale成员导师信息本人于2022年取得清华大学博士学位&#xff0c;目前是苏州大学计算机科学与技术学院的硕士生导师&#xff0c;2023年可招收计算机科学与技术、软件工程、人工智能及大数据技术与工程…