当前位置: 首页 > news >正文

JavaScript语法基础之事件基础(鼠标、表单、页面事件等)

目录

1. 事件基础

1.1. 事件是什么?

1.2. 事件调用方式

1.2.1. 在 script 标签中调用

1.2.2. 在元素中调用事件

1.3. 鼠标事件

1.3.1. 鼠标单击

1.4. 表单事件

1.4.1. onfocus & onblur

1.5. 页面事件

1.5.1. onload


1. 事件基础

1.1. 事件是什么?

  • 举个例子,当我们点击一个按钮时,会弹出一个对话框。其中点击就是一个事件,弹出对话框就是我们在点击这个事件里面做的一些事情。
  • JavaScript 中,事件一般是用户对页面的一些小动作引起的,例如按下鼠标、移动鼠标等,这些都会触发相应的一个事件。
  • JavaScript 常见的事件共有以下 5 种:
    • 鼠标事件
    • 键盘事件
    • 表单事件
    • 编辑事件
    • 页面事件
  • 事件操作是 JavaScript 的核心,可以这样说:不懂事件操作,JavaScript 等于白学。

1.2. 事件调用方式

  • JavaScript 中,调用事件的方式有两种:
    • script 标签中调用
    • 在元素中调用

1.2.1. 在 script 标签中调用

  • script 标签中调用事件,指的是在<script></script>标签内部调用事件。
  • 语法:
obj.事件名 = function(){……
};
  • 举例:
<!DOCTYPE html>
<html><head><meta charset="utf-8" /><title></title><script>window.onload = function () {//获取元素var oBtn = document.getElementById("btn");//为元素添加点击事件oBtn.onclick = function () {alert("Gok");};};</script></head><body><input id="btn" type="button" value="弹出" /></body>
</html>

1.2.2. 在元素中调用事件

  • 在元素中调用事件,指的是直接在HTML属性中来调用事件,这个属性又叫做“事件属性”。
  • 举例:
<!DOCTYPE html>
<html><head><meta charset="utf-8" /><title></title><script>function alertMes() {alert("Gok");}</script></head><body><input type="button" onclick="alertMes()" value="弹出" /></body>
</html>

1.3. 鼠标事件

  • JavaScript 中,常见的鼠标事件如下表所示。

事件

说明

onclick

鼠标单击事件

onmouseover

鼠标移入事件

onmouseout

鼠标移出事件

onmousedown

鼠标按下事件

onmouseup

鼠标松开事件

onmousemove

鼠标移动事件

1.3.1. 鼠标单击

  • 单击事件 onclick 我们在之前已经接触过非常多了,例如点击某个按钮弹出一个提示框。
  • 这里要特别注意一点,单击事件不只是按钮才有,任何元素我们都可以为它添加单击事件!
  • 举例:
<!DOCTYPE html>
<html><head><meta charset="utf-8" /><title></title><script>window.onload = function () {var oBtn = document.getElementById("btn");oBtn.onclick = alertMes;function alertMes() {alert("Gok!");}};</script></head><body><input id="btn" type="button" value="按钮" /></body>
</html>

1.4. 表单事件

  • JavaScript 中,常用的表单事件有 3 种:
    • onfocusonblur
    • onselect
    • onchange
  • 实际上除了上面这几个,还有一个 onsubmit 事件。
  • 不过 onsubmit 事件一般都是结合后端技术来使用,所以暂时可以不管。

1.4.1. onfocus & onblur

  • onfocus 表示获取焦点时触发的事件,而 onblur 表示失去焦点时触发的事件,两者是相反操作。
  • onfocusonblur 这两个事件往往都是配合一起使用的。例如用户准备在文本框中输入内容时,此时它会获得光标,就会触发 onfocus 事件。当文本框失去光标时,就会触发 onblur 事件。
  • 并不是所有的 HTML 元素都有焦点事件,具有获取焦点失去焦点特点的元素只有 2 种:
    • 表单元素(单选框、复选框、单行文本框、多行文本框、下拉列表)
    • 超链接
  • 举例:搜索框
<!DOCTYPE html>
<html>
<head><meta charset="utf-8" /><title></title><style type="text/css">#search {color: #bbbbbb;}</style><script>window.onload = function () {//获取元素对象var oSearch = document.getElementById("search");//获取焦点oSearch.onfocus = function () {if (this.value === "百度一下,你就知道") {this.value = "";}};//失去焦点oSearch.onblur = function () {if (this.value === "") {this.value = "百度一下,你就知道";}};};</script>
</head>
<body>
<input id="search" type="text" value="百度一下,你就知道" />
<input type="button" value="搜索" />
</body>
</html>

1.5. 页面事件

1.5.1. onload

  • JavaScript 中,onload 表示文档加载完成后再执行的一个事件。
  • 语法:
window.onload = function(){……
}
  • 举例:
<!DOCTYPE html>
<html><head><meta charset="utf-8" /><title></title><script>window.onload = function () {var oBtn = document.getElementById("btn");oBtn.onclick = function () {alert("JavaScript");};};</script></head><body><input id="btn" type="button" value="提交" /></body>
</html>

相关文章:

  • 北京网站建设多少钱?
  • 辽宁网页制作哪家好_网站建设
  • 高端品牌网站建设_汉中网站制作
  • 3D场景标注标签信息,three.js CSS 2D渲染器CSS2DRenderer、CSS 3D渲染器CSS3DRenderer(结合react)
  • ESP32-C3在MQTT访问时出现“transport_base: Poll timeout or error”问题的分析(8)
  • TCP 如何保证可靠性?
  • 代码复现改进
  • VUE中出现Cannot find module ‘@/api/xxx.js‘ or its corresponding type declarations
  • 2-72 基于matlab的平稳小波变换进行多聚焦图像融合
  • 特斯拉算法,暴力递归尝试,汉诺塔问题
  • 使用 Python 爬虫进行网站流量分析:Referer 头的利用
  • 设计模式反模式:UML常见误用案例分析
  • DRF——请求的封装与版本管理
  • C语言第17篇
  • react的ul li滚动列表
  • 乾坤微前端框架详细使用大全
  • 机器学习 之 线性回归算法
  • IntelliJ IDEA ideaIU-2024.2.0.2.exe 启动 IDE 失败
  • 【MySQL经典案例分析】 Waiting for table metadata lock
  • - C#编程大幅提高OUTLOOK的邮件搜索能力!
  • co模块的前端实现
  • ESLint简单操作
  • Linux各目录及每个目录的详细介绍
  • PhantomJS 安装
  • Puppeteer:浏览器控制器
  • python_bomb----数据类型总结
  • Python十分钟制作属于你自己的个性logo
  • Storybook 5.0正式发布:有史以来变化最大的版本\n
  • 高度不固定时垂直居中
  • 关于List、List?、ListObject的区别
  • 技术胖1-4季视频复习— (看视频笔记)
  • 漂亮刷新控件-iOS
  • 使用Envoy 作Sidecar Proxy的微服务模式-4.Prometheus的指标收集
  • 微信端页面使用-webkit-box和绝对定位时,元素上移的问题
  • 小程序开发中的那些坑
  • 写给高年级小学生看的《Bash 指南》
  • 一个普通的 5 年iOS开发者的自我总结,以及5年开发经历和感想!
  • 由插件封装引出的一丢丢思考
  • 原生js练习题---第五课
  • 曾刷新两项世界纪录,腾讯优图人脸检测算法 DSFD 正式开源 ...
  • ​TypeScript都不会用,也敢说会前端?
  • ​猴子吃桃问题:每天都吃了前一天剩下的一半多一个。
  • ​数据结构之初始二叉树(3)
  • ​数据链路层——流量控制可靠传输机制 ​
  • ​无人机石油管道巡检方案新亮点:灵活准确又高效
  • ​中南建设2022年半年报“韧”字当头,经营性现金流持续为正​
  • (13)DroneCAN 适配器节点(一)
  • (23)Linux的软硬连接
  • (arch)linux 转换文件编码格式
  • (LeetCode C++)盛最多水的容器
  • (附源码)spring boot车辆管理系统 毕业设计 031034
  • (六)库存超卖案例实战——使用mysql分布式锁解决“超卖”问题
  • (论文阅读23/100)Hierarchical Convolutional Features for Visual Tracking
  • (没学懂,待填坑)【动态规划】数位动态规划
  • (免费领源码)Python#MySQL图书馆管理系统071718-计算机毕业设计项目选题推荐
  • (转)Sublime Text3配置Lua运行环境
  • (转)关于如何学好游戏3D引擎编程的一些经验
  • .Net 6.0--通用帮助类--FileHelper