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 相关文章推荐
如何做到打开一个页面,过几分钟自动转到另一页面
Apr 20 Javascript
用jscript实现新建word文档
Jun 15 Javascript
jQuery中bind与live的用法及区别小结
Jan 27 Javascript
js事件监听机制(事件捕获)总结
Aug 08 Javascript
由浅入深剖析Angular表单验证
Jul 14 Javascript
Node.js中使用jQuery的做法
Aug 17 Javascript
Bootstrap CSS布局之按钮
Dec 17 Javascript
JavaScript基本类型值-Undefined、Null、Boolean
Feb 23 Javascript
10个经典的网页鼠标特效代码
Jan 09 Javascript
JavaScript解决浮点数计算不准确问题的方法分析
Jul 09 Javascript
JS实现transform实现扇子效果
Jan 17 Javascript
JavaScript基于SVG的图片切换效果实例代码
Dec 15 Javascript
详解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
VFP与其他应用程序的集成
2006/10/09 PHP
PHP SPL标准库中的常用函数介绍
2015/05/11 PHP
PHP实现登录注册之BootStrap表单功能
2017/09/03 PHP
理解Javascript_15_作用域分配与变量访问规则,再送个闭包
2010/10/20 Javascript
jQuery点击输入框显示验证码图片
2016/05/19 Javascript
jQuery向父辈遍历的简单方法
2016/09/18 Javascript
利用JavaScript在网页实现八数码启发式A*算法动画效果
2017/04/16 Javascript
创建简单的node服务器实例(分享)
2017/06/23 Javascript
Node.js+jade+mongodb+mongoose实现爬虫分离入库与生成静态文件的方法
2017/09/20 Javascript
webpack里使用jquery.mCustomScrollbar插件的方法
2018/05/30 jQuery
在Windows8上的搭建Python和Django环境
2014/07/03 Python
python编写网页爬虫脚本并实现APScheduler调度
2014/07/28 Python
Python中的startswith和endswith函数使用实例
2014/08/25 Python
深入解析Python编程中JSON模块的使用
2015/10/15 Python
Python 中pandas.read_excel详细介绍
2017/06/23 Python
Python优先队列实现方法示例
2017/09/21 Python
python实现决策树、随机森林的简单原理
2018/03/26 Python
Python中if elif else及缩进的使用简述
2018/05/31 Python
Python3实现的判断回文链表算法示例
2019/03/08 Python
详解python opencv、scikit-image和PIL图像处理库比较
2019/12/26 Python
Pytorch Tensor 输出为txt和mat格式方式
2020/01/03 Python
Django高并发负载均衡实现原理详解
2020/04/04 Python
Python 判断时间是否在时间区间内的实例
2020/05/16 Python
如何解决pycharm调试报错的问题
2020/08/06 Python
python制作一个简单的gui 数据库查询界面
2020/11/19 Python
HTML5实现Notification API桌面通知功能
2016/03/02 HTML / CSS
String是最基本的数据类型吗?
2013/06/13 面试题
在子网210.27.48.21/30种有多少个可用地址?分别是什么?
2014/07/27 面试题
英语专业毕业个人求职自荐信
2013/09/21 职场文书
求职简历自荐信
2013/10/20 职场文书
自主招生推荐信范文
2014/05/10 职场文书
节能减耗标语
2014/06/21 职场文书
纪念九一八爱国演讲稿600字
2014/09/14 职场文书
银行求职信范文怎么写
2015/03/20 职场文书
居住证明范文
2015/06/17 职场文书
教师廉政准则心得体会
2016/01/20 职场文书