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 相关文章推荐
JS 控件事件小结
Oct 31 Javascript
关于extjs treepanel复选框选中父节点与子节点的问题
Apr 02 Javascript
jQuery事件绑定与解除绑定实现方法
Apr 15 Javascript
浅析JS异步加载进度条
May 05 Javascript
JS选取DOM元素的简单方法
Jul 08 Javascript
原生js实现移动端触摸轮播的示例代码
Dec 22 Javascript
three.js 入门案例详解
Jan 23 Javascript
JavaScript函数式编程(Functional Programming)纯函数用法分析
May 22 Javascript
小程序click-scroll组件设计
Jun 18 Javascript
vue draggable resizable 实现可拖拽缩放的组件功能
Jul 15 Javascript
微信小程序基于高德地图API实现天气组件(动态效果)
Oct 22 Javascript
vue使用transition组件动画效果的实例代码
Jan 28 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顺序查找和二分查找示例
2014/03/27 PHP
php自定义函数截取汉字长度
2014/05/15 PHP
windows7下安装php的imagick和imagemagick扩展教程
2014/07/04 PHP
php+ajax实现无刷新分页的方法
2014/11/04 PHP
PHP实现获取毫秒时间戳的方法【使用microtime()函数】
2019/03/01 PHP
alixixi runcode.asp的代码不错的应用
2007/08/08 Javascript
Array.prototype.slice.apply的使用方法
2010/03/17 Javascript
jquery $.ajax()取xml数据的小问题解决方法
2010/11/20 Javascript
让浏览器非阻塞加载javascript的几种方法小结
2011/04/25 Javascript
javascript 文本框水印/占位符(watermark/placeholder)实现方法
2012/01/15 Javascript
关于js日期转化为毫秒数“节省20%的效率和和节省9个字符“问题
2012/03/01 Javascript
利用jQuery的deferred对象实现异步按顺序加载JS文件
2013/03/17 Javascript
Jquery显示、隐藏元素以及添加删除样式
2013/08/09 Javascript
用Js实现的动态增加表格示例自己写的
2013/10/21 Javascript
IE6-IE9中tbody的innerHTML不能赋值的解决方法
2014/06/05 Javascript
JavaScript过滤字符串中的中文与空格方法汇总
2016/03/07 Javascript
jQuery遍历DOM节点操作之filter()方法详解
2016/04/14 Javascript
原生js仿jquery animate动画效果
2016/07/13 Javascript
详解Angular2中的编程对象Observable
2016/09/17 Javascript
javascript cookie用法基础教程(概念,设置,读取及删除)
2016/09/20 Javascript
jQuery插件扩展实例【添加回调函数】
2016/11/26 Javascript
原生js实现旋转木马轮播图效果
2017/02/27 Javascript
mac上node.js环境的安装测试
2017/07/03 Javascript
angular.js中解决跨域问题的三种方式
2017/07/12 Javascript
vue-resource调用promise取数据方式详解
2017/07/21 Javascript
vue2中引用及使用 better-scroll的方法详解
2018/11/15 Javascript
vue中keep-alive内置组件缓存的实例代码
2020/04/16 Javascript
vue数据更新UI不刷新显示的解决办法
2020/08/06 Javascript
[01:01:23]完美世界DOTA2联赛PWL S2 Forest vs FTD.C 第一场 11.26
2020/11/30 DOTA
Python在Matplotlib图中显示中文字体的操作方法
2019/07/29 Python
python 队列基本定义与使用方法【初始化、赋值、判断等】
2019/10/24 Python
新西兰便宜隐形眼镜购买网站:QUICKLENS New Zealand
2019/03/02 全球购物
医院深入开展党的群众路线教育实践活动实施方案
2014/08/27 职场文书
2014年度个人工作总结
2014/11/07 职场文书
研究生学习计划书应该怎么写?
2019/09/10 职场文书
使用numpy nonzero 找出非0元素
2021/05/14 Python