JavaScript事件概念详解(区分静态注册和动态注册)


Posted in Javascript onFebruary 05, 2021

js中的事件

什么是事件?事件是电脑输入设备与页面进行交互的响应,我们称之为事件

事件类型

  • 鼠标单击:例如单击button、选中checkbox和radio等元素;鼠标进入、悬浮或退出页面的某个热点:例如鼠标停在一个图片上方或者进入table的范围;
  • 键盘按键:当按下按键或释放按键时;
  • HTML事件:例如页面body被加载时;在表单中选取输入框或改变输入框中文本的内容:例如选中或修改了文本框中的内容;
  • 突变事件:主要指文档底层元素发生改变时触发的事件,如DomSubtreeModified(DOM子树修改)。

常用的事件

  • onload 加载完成事件: 页面加载完成之后,常用于做页面js 代码初始化操作
  • onclick 单击事件: 常用于按钮的点击响应操作。
  • onblur 失去焦点事件: 常用用于输入框失去焦点后验证其输入内容是否合法。
  • onchange 内容发生改变事件: 常用于下拉列表和输入框内容发生改变后操作
  • onsubmit 表单提交事件: 常用于表单提交前,验证所有表单项是否合法。

事件的注册

什么是事件的注册(绑定)?
其实就是告诉浏览器,当事件响应后要执行哪些操作代码,叫事件注册或事件绑定。
事件的注册又分为静态注册和动态注册两种

  • 静态注册事件:通过html 标签的事件属性直接赋于事件响应后的代码,这种方式我们叫静态注册
  • 动态注册事件:是指先通过js 代码得到标签的dom 对象,然后再通过dom 对象.事件名= function(){} 这种形式赋于事件响应后的代码,叫动态注册

动态注册基本步骤:

1、获取标签对象
2、标签对象.事件名= fucntion(){}

静态动态注册举例

onload 加载完成事件

静态绑定:

<!DOCTYPE html>
<html lang="en">
<head>
  <meta charset="UTF-8">
  <title>静态注册</title>
  <script type="text/javascript">
  // onload 事件的方法
   function onloadFun() {
   alert('静态注册onload 事件,所有代码');
   }
  </script>
</head>
<!--静态注册onload 事件,onload 事件是浏览器解析完页面之后就会自动触发的事件,body标签的属性,通过这个属性注册-->
<body οnlοad="onloadFun();">
</body>
</html>

动态绑定:

固定的写法,通过window.onload(){}方法,在大括号内调用方法的

<!DOCTYPE html>
<html lang="en">
<head>
  <meta charset="UTF-8">
  <title>动态注册</title>
  <script type="text/javascript">
   // onload 事件动态注册。是固定写法
   window.onload = function () {
   alert("动态注册的onload 事件");
   }
  </script>
</head>
<body>
</body>
</html>

onclick单击事件

举例,从这个例子更好的体会两者定义的不同

onclick静态绑定事件

<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<title>Title</title>
<script type="text/javascript">
 function onclickFun() {
  alert("静态注册onclick 事件");
 }
</script>
</head>
<body>
<!--静态注册onClick 事件,通过button的onclick属性-->
<button onclick="onclickFun();">按钮1</button>
</body>
</html>

onclick动态绑定事件

<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<title>Title</title>
<script type="text/javascript">
   window.onload = function () {
   //getElementById 通过id 属性获取标签对象
   var btnObj = document.getElementById("btn01");
   // 2 通过标签对象.事件名= function(){}
   btnObj.onclick = function () {
    alert("动态注册的onclick 事件");
   }
   }
</script>
</head>
<body>
 
<button id="btn01">按钮2</button>
</body>
</html>

以上就是JavaScript事件概念详解(区分静态注册和动态注册)的详细内容,更多关于JavaScript 事件的资料请关注三水点靠木其它相关文章!

Javascript 相关文章推荐
JavaScript中为什么null==0为false而null大于=0为true(个人研究)
Sep 16 Javascript
使用Jquery实现点击文字后变成文本框且可修改
Sep 21 Javascript
浅谈js图片前端预览之filereader和window.URL.createObjectURL
Jun 30 Javascript
vue.js+boostrap项目实践(案例详解)
Sep 21 Javascript
详解获取jq ul第一个li定位的四种解决方案
Nov 23 Javascript
Bootstrap导航条的使用和理解3
Dec 14 Javascript
vue+elementUI实现图片上传功能
Aug 20 Javascript
解决vue-router路由拦截造成死循环问题
Aug 05 Javascript
vue路由结构可设一层方便动态添加路由操作
Aug 31 Javascript
利用vue3+ts实现管理后台(增删改查)
Oct 30 Javascript
解决vue elementUI 使用el-select 时 change事件的触发问题
Nov 17 Vue.js
Vue Element-ui表单校验规则实现
Jul 09 Vue.js
详解javascript脚本何时会被执行
Feb 05 #Javascript
前端如何实现动画过渡效果
Feb 05 #Javascript
原生js拖拽功能制作滑动条实例代码
Feb 05 #Javascript
jQuery是用来干什么的 jquery其实就是一个js框架
Feb 04 #jQuery
如何在JavaScript中使用localStorage详情
Feb 04 #Javascript
vue浏览器返回监听的具体步骤
Feb 03 #Vue.js
vue实现禁止浏览器记住密码功能的示例代码
Feb 03 #Vue.js
You might like
PHP 命令行参数详解及应用
2011/05/18 PHP
ThinkPHP控制器里javascript代码不能执行的解决方法
2014/11/22 PHP
php使用ereg验证文件上传的方法
2014/12/16 PHP
PHP常见的6个错误提示及解决方法
2016/07/07 PHP
JQuery实现自定义对话框的代码
2008/06/15 Javascript
日期 时间js控件
2009/05/07 Javascript
Prototype 学习 工具函数学习($方法)
2009/07/12 Javascript
Jquery Ajax方法传值到action的方法
2014/05/11 Javascript
优化RequireJS项目的相关技巧总结
2015/07/01 Javascript
JS实现滑动菜单效果代码(包括Tab,选项卡,横向等效果)
2015/09/24 Javascript
举例讲解JavaScript中将数组元素转换为字符串的方法
2015/10/25 Javascript
从重置input file标签中看jQuery的 .val() 和 .attr(“value”) 区别
2016/06/12 Javascript
react以create-react-app为基础创建项目
2018/03/14 Javascript
关于node-bindings无法在Electron中使用的解决办法
2018/12/18 Javascript
微信公众平台 发送模板消息(Java接口开发)
2019/04/17 Javascript
Vue项目打包部署到apache服务器的方法步骤
2021/02/01 Vue.js
[01:06:07]2014 DOTA2国际邀请赛中国区预选赛5.21 DT VS CIS
2014/05/22 DOTA
基于python 爬虫爬到含空格的url的处理方法
2018/05/11 Python
对python3 一组数值的归一化处理方法详解
2018/07/11 Python
python梯度下降法的简单示例
2018/08/31 Python
python 协程中的迭代器,生成器原理及应用实例详解
2019/10/28 Python
Docker部署Python爬虫项目的方法步骤
2020/01/19 Python
pytorch实现从本地加载 .pth 格式模型
2020/02/14 Python
python用tkinter实现一个简易能进行随机点名的界面
2020/09/27 Python
python通用数据库操作工具 pydbclib的使用简介
2020/12/21 Python
Canvas中设置width与height的问题浅析
2018/11/01 HTML / CSS
工程管理专业个人求职信范文
2013/12/07 职场文书
高二地理教学反思
2014/01/24 职场文书
网上开店必备创业计划书
2014/01/26 职场文书
中专毕业生自我鉴定
2014/02/02 职场文书
投标人法定代表人授权委托书格式
2014/09/28 职场文书
大学生学期个人总结
2015/02/12 职场文书
2015年房地产销售工作总结
2015/04/20 职场文书
2016年妇联“6﹒26国际禁毒日”宣传活动总结
2016/04/05 职场文书
redis 解决库存并发问题实现数量控制
2022/04/08 Redis
本地搭建minio文件服务器(使用bat脚本启动)的方法
2022/07/15 Servers