白学的小知识[js.事件]

一、事件的常用绑定方式
1 、行内绑定,语法:
<标签 属性列表 事件="事件处理的程序" />
<button onclick="addNode();">创建节点</button>
行内绑定:行内绑定的方式所有的行为(结构、样式、行为)都绑定在同一个标签中,不利于后期维护,而且 违 反js 代码与 html 代码相分离。
2 、动态绑定,语法:
var obj = document.getElementById("testButt");
obj.onclick = function(){
alert("测试动态绑定");
}

动态绑定:兼容性好,同一个dom元素对象同一个事件只能绑定一个处理函数,多个的话后会覆盖前者。

3、事件监听,语法:

var obj = document.getElementById("testButt");
obj.addEventListener("click",eventTesta);
obj.addEventListener("click",eventTestb);
function eventTesta(){
alert("aaaaaaaaaaaaaaaaaaaaaaaa");
}
function eventTestb(){
alert("bbbbbbbbbbbbbbbbbbbbbb");
}//多个处理函数全部执行了

事件监听: 同一个元素对象同一个事件可以添加多个事件处理程序,dom对象.addEventListener("事件类型",处理函数,boolean) 布尔值可选,默认值是false指定事件是否在捕获或者冒泡阶段执行。

 二、常用的事件类型

1、用于页面:
1 onload
页面加载时候 一般用于 body 元素
2 onunload
页面离开或关闭
注:IE浏览器刷新、页面跳转可以执行 chrome浏览器什么情况都不执行

 

<body onunload="closeLoad();" onload="eventLoad();">
<script type="text/javascript">
function closeLoad(){
alert("页面关闭事件!!!");
}
function eventLoad(){
alert("当页面加载时事件");
}
</script>

 2、用于鼠标:

1 onclick
单击事件 用于鼠标左键点击一下(按下并弹起完成单击)
2 ondblclick
双击事件 鼠标左键快速点击两下
注:单击、双击不能同时定义在同一个对象
<button onclick ="testClick();">单击事件</button>
<button ondblclick="testDblclick();">双击事件</button>
<script type="text/javascript">
function testDblclick(){
alert("双击事件");
}
function testClick(){
alert("单击事件");
}
</script>
3 onmouseover
鼠标悬停时(当鼠标放上时)
4 onmouseout
鼠标移开时
5 onmousedown( 不分左右键 )
鼠标按下时(仅指按下)
6 onmouseup( 不分左右键 )
释放鼠标按键时
<div id="testDiv" style="width: 200px;height: 200px;background-color: coral;"
>
鼠标事件
</div>
var objNode = document.getElementById("testDiv");
objNode.onmouseover = function(){
alert("鼠标悬停1111111111");
};
objNode.onmouseout = function(){
alert("鼠标移开2222222222222");
};
objNode.onmousedown = function(){
alert("左键按下33333333333333");
};
objNode.onmouseup = function(){
alert("释放444444444444444444");
};
3、用于键盘:
1 onkeydown
按下键盘某个键时
2 onkeyup
抬起键盘某个键时
3 onkeypress
按下或按住键盘某个键 ( 注意:跟 onkeydown 不要同时用 )
用户名: <input id="userName" name="userName" value="" type="text" />
var objNode = document.getElementById("userName");
objNode.addEventListener("keydown",keyFun1);
objNode.addEventListener("keyup",keyFun2);
objNode.addEventListener("keypress",keyFun3);
function keyFun1(){
console.info("键盘按下11111111111");
}
function keyFun2(){
console.info("键盘抬起22222222222");
}
function keyFun3(){
console.info("键盘按住33333333333");
}
4、表单元素事件:
1 onblur
当文本框失去焦点(鼠标光标在文本框之外 )
2 onfocus
当文本框获得焦点(鼠标光标在文本框之内)
用户名: <input onblur="blueFun();" onfocus="focusFun();" id="userName"
name="userName" value="" type="text" />
function blueFun(){
console.info("失去焦点111111");
}
function focusFun(){
console.info("得到焦点22222222");
}
3 onchange ( 经常用于下拉选择框 )
内容发生改变
4 onsubmit( 表单提交时的事件 )
点击 “submit” 按钮
5 onreset( 表单元素重置的事件 )
点击 "reset" 按钮
<form id="myForm" name="myForm" method="get"
action="https://www.baidu.com" onsubmit="return fun6()" onreset="return
fun7()">
<input name="" value="" type="text"
onfocus="fun1()" onblur="fun2()" oninput="fun3()" onchange="fun4()"/><br />
<select name="city" onchange="fun5(this)">
<option selected>-请选择城市-</option>
<option value="1">北京</option>
<option value="2">天津</option>
<option value="3">上海</option>
<option value="4">重庆</option>
</select>
<br />
<input type="submit" value="提交数据" />
<input type="reset" value="重置数据" />
</form>
<script>
function fun1(){console.log("获得焦点");}
function fun2(){console.log("失去焦点");}
function fun3(){console.log("正在输入");}// 只要输入
了,就会触发
function fun4(){console.log("内容改变");}// 内部信息发
生变化的同时,要失去焦点
function fun5(sel){console.log("内容发生改变
了"+sel.value)}
function fun6(){
alert("发生了提交事件");
// 做了一些运算之后 动态决定表单能否提交
return false ;
}
function fun7(){
console.log("发生了重置事件");
return true;
}
</script>
获取表单元素值方式
1 dom 元素对象 .value
document.getElementById("userName").value
function submitFun(){
//alert("确定要提交数据吗33333");
alert(document.getElementById("userName").value+"_1111111111");
alert(document.myForm.userName.value+"_2222222222222");
}
function resetFun(){
alert("数据会被重置4444");
}
5、 DOM event 对象的属性:
type :当前事件的类型
keyCode: 被敲击的键生成的 Unicode 字符码。对于 keydown keyup
clientX:获取当前事件距离窗口左边的距离;
clientY:当前事件发生时距离窗口顶端的距离;
pageX:当前事件所在网页中的x坐标
pageY:当前事件所在网页中的y坐标;
screenX:当前事件所在屏幕中的x坐标;
screenY:当前事件所在屏幕中的y坐标;
event 参数就是一个 event 对象,这个 event 对象必须小写。
Html 标签中我们通过事件来调用函数,可以向函数传递事件( event )参数,但是这个对象是暂时
的,这个对象 就是 event 对象
<input onkeydown="getEventInfo(event);" type="text" name="userName"
id="userName" value="admin" />
// 注: event 参数是固定的.
function getEventInfo(e){
alert(e.type);
}

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

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

相关文章

C语言:htoi十六进制转十进制

编写函数htoi(s), 把由十六进制数字组成的字符串&#xff08;包含可选的前缀0X和0x&#xff09;&#xff0c;转化为与之等价的整数值, 字符串中包含的字符可以是0 - 9&#xff0c;A - F&#xff0c;a - f // 把由十六进制数字组成的字符串(包含可选的前缀0X和0x)&#xff0c;转…

鸿蒙:@Observed装饰器和@ObjectLink装饰器:嵌套类对象属性变化

在实际应用开发中&#xff0c;应用会根据开发需要&#xff0c;封装自己的数据模型。对于多层嵌套的情况&#xff0c;比如二维数组&#xff0c;或者数组项class&#xff0c;或者class的属性是class&#xff0c;他们的第二层的属性变化是无法观察到的。这就引出了Observed/Object…

AJAX介绍使用案例

文章目录 一、AJAX概念二、AJAX快速入门1、编写AjaxServlet&#xff0c;并使用response输出字符&#xff08;后台代码&#xff09;2、创建XMLHttpRequest对象&#xff1a;用于和服务器交换数据 & 3、向服务器发送请求 & 4、获取服务器响应数据 三、案例-验证用户是否存…

由浅入深一步步了解什么是哈希(概念向)

文章目录 什么是哈希哈希函数直接定址法除留余数法 哈希冲突闭散列线性探测法二次探测法负载因子和闭散列的扩容 开散列开散列的扩容 非整形关键码 什么是哈希 我们来重新认识一下数据查找的过程&#xff1a; 在顺序结构以及平衡树中&#xff0c;记录的关键码与其存储位置之间…

【自然语言处理】统计中文分词技术(一):1、分词与频度统计

文章目录 一、词与分词1、词 vs 词素2、世界语言分类 二、分词的原因与基本原因1、为什么要分词2、分词规范3、分词的主要难点-切分歧义如何排除切分歧义利用词法信息利用句法信息利用语义信息利用语用、语境信息 4、分词的主要难点-未登录词未登录词如何识别未登录词 三、分词…

扫雷(c++题解)

题目描述 题目描述 扫雷是一种计算机游戏&#xff0c;在 世纪 年代开始流行&#xff0c;并且仍然包含在某些版本的 Microsoft Windows 操作系统中。 在这个问题中&#xff0c;你正在一个矩形网格上玩扫雷游戏。 最初网格内的所有单元格都呈未打开状态。 其中 个不同的单…

Docker入门到实践之环境配置

Docker入门到实践之环境配置 docker 环境安装 Ubuntu/Debian: sudo apt update sudo apt install docker.ioCentOS/RHEL: sudo yum install dockerArch Linux: sudo pacman -S docker如果未安装成功&#xff0c;或者env的path未设置成功&#xff0c;运行时会报错 Bash: Do…

[HackMyVM]靶场 Slowman

kali:192.168.56.104 靶机:192.168.56.132 端口扫描 # nmap 192.168.56.132 Starting Nmap 7.94SVN ( https://nmap.org ) at 2024-03-24 15:28 CST Nmap scan report for 192.168.56.132 Host is up (0.00066s latency). Not shown: 995 filtered tcp ports (no-response) …

NX二次开发-调内部函数创建进度条MT_create_progress_bar

一、概述 最近学习NX二次开发&#xff0c;看到NX打开装配模型或者加载模型时会显示进度条的问题&#xff0c;个人觉得很有意思&#xff0c;然后参考阿飞2018中的文章进行学习。 二、代码解析 //User Defined Header File#include <uf.h>#include <uf_ui.h>#includ…

使用 React antd 的ProFormSelect组件 搜索查询 多选的写法

使用 React antd 的ProFormSelect组件 搜索查询 多选的写法 需求&#xff1a;需要一个搜索框&#xff0c;可以选择员工&#xff0c;&#xff08;员工人数多无法一次性获取&#xff0c;全部放入options中&#xff09;&#xff0c;所以需要使用搜索功能&#xff0c;而且是可以多…

redis如何保持持久性

为了保持 Redis 数据的持久性&#xff0c;你可以通过以下几种方式来实现&#xff1a; RDB 持久化&#xff1a; Redis 可以将数据集快照写入磁盘。此方法会在指定的时间间隔内生成数据集的时间点快照&#xff0c;存储到磁盘上。这种持久化方式适用于备份、恢复数据以及灾难恢复…

Linux的相关指令总结

Linux的基本命令 Linux指令是Linux操作系统的核心组成部分&#xff0c;它们为用户和管理员提供了与系统进行交互和管理的强大工具。这些指令涵盖了从基本的文件操作到复杂的系统配置和管理的各个方面。 ls指令 功能&#xff1a;用于列出指定目录中的文件和子目录名称。语法&am…

HarmonyOS NEXT应用开发之ArkWeb同层渲染

介绍 该方案展示了ArkWeb同层渲染&#xff1a;将系统原生组件直接渲染到前端H5页面上&#xff0c;原生组件不仅可以提供H5组件无法实现的一些功能&#xff0c;还能提升用户体验的流畅度 效果图预览 使用说明 进入页面即可看到同层渲染效果&#xff0c;Text&#xff0c;searc…

js知识总结

1. JS由那三部分组成&#xff1f; ECMASript文档对象模型&#xff08;DOM&#xff09;浏览器对象模型&#xff08;BOM&#xff09; 2. 操作数组的方法有那些&#xff1f; 高阶函数&#xff1a;map、filter、forEach、reduce、find、findIndex、every、some、push、unshift、…

数据库系统概论(超详解!!!) 第四节 关系数据库标准语言SQL(Ⅰ)

1.SQL概述 SQL&#xff08;Structured Query Language&#xff09;结构化查询语言&#xff0c;是关系数据库的标准语言 SQL是一个通用的、功能极强的关系数据库语言 SQL的动词 基本概念 基本表 &#xff1a;本身独立存在的表&#xff1b; SQL中一个关系就对应一个基本表&am…

SecureCRT:高效安全的远程连接工具

SecureCRT是一款功能强大的终端仿真工具&#xff0c;主要用于连接和运行包括Windows、UNIX和VMS在内的远程系统。它支持多种协议&#xff0c;如SSH1、SSH2、Telnet、SFTP、Rlogin、Serial、SCP等&#xff0c;确保用户与目标设备之间的通信安全&#xff0c;并防止网络攻击和窥探…

spring-boot解析spring.factories文件

spring-boot解析spring.factories文件 启动SpringBoot自动装配的工厂类方法实现 /*** 解析 spring.factories 文件** return 读取到的所有数据*/private static Map<String, List<String>> loadSpringFactories(ClassLoader classLoader){try {Enumeration<URL…

HTTP系列之HTTP缓存 —— 强缓存和协商缓存

文章目录 HTTP缓存强缓存协商缓存状态码区别缓存优先级如何设置强缓存和协商缓存使用场景 HTTP缓存 HTTP缓存时利用HTTP响应头将所请求的资源在浏览器进行缓存&#xff0c;缓存方式分两种&#xff1a;强缓存和协商缓存。 浏览器缓存是指将之前请求过的资源在浏览器进行缓存&am…

安卓findViewById 的优化方案:ViewBinding与ButterKnife(一)

好多小伙伴现在还用findViewById来获取控件的id, 在这里提供俩种替代方案&#xff1a;ViewBinding与ButterKnife&#xff1b; 先来说说ButterKnife ButterKnife ButterKnife是一个专注于Android系统的View注入框架&#xff0c;在过去的项目中总是需要很多的findViewById来查…

用C++做一个植物大战僵尸

制作一个完整的“植物大战僵尸”游戏是一个非常大的项目&#xff0c;涉及图形渲染、碰撞检测、用户输入处理、音效、动画、游戏逻辑等多个方面。由于这个话题非常广泛&#xff0c;我可以提供一个简化的版本或者一个框架来启动你的项目。 以下是一个简化的框架&#xff0c;帮助…