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子父窗口互相操作取值赋值的方法介绍
May 11 Javascript
js 实现浏览历史记录示例
Apr 20 Javascript
jQuery插件之jQuery.Form.js用法实例分析(附demo示例源码)
Jan 04 Javascript
分享有关jQuery中animate、slide、fade等动画的连续触发、滞后反复执行的bug
Jan 10 Javascript
基于javascript实现文字无缝滚动效果
Mar 22 Javascript
关于微信jssdk实现多图片上传的一点心得分享
Dec 13 Javascript
原生js实现返回顶部缓冲效果
Jan 18 Javascript
Angular中使用ng-zorro图标库部分图标不能正常显示问题
Apr 22 Javascript
在 Vue 应用中使用 Netlify 表单功能的方法详解
Jun 03 Javascript
Vue组件模板的几种书写形式(3种)
Feb 19 Javascript
Vue实现手机号、验证码登录(60s禁用倒计时)
Dec 19 Vue.js
原生JavaScript实现幻灯片效果
Feb 19 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
php实现给图片加灰色半透明效果的方法
2014/10/20 PHP
PHP自定session保存路径及删除、注销与写入的方法
2014/11/18 PHP
PHP根据key删除数组中指定的元素
2019/02/28 PHP
JavaScript中链式调用之研习
2011/04/07 Javascript
js/jQuery简单实现选项卡功能
2014/01/02 Javascript
JS版元素周期表实现方法
2015/08/05 Javascript
easyui Draggable组件实现拖动效果
2015/08/19 Javascript
js实现按钮颜色渐变动画效果
2015/08/20 Javascript
js的form表单提交url传参数(包含+等特殊字符)的两种解决方法
2016/05/25 Javascript
BootStrap智能表单实战系列(三)分块表单配置详解
2016/06/13 Javascript
Javascript的比较汇总
2016/07/25 Javascript
JS实现微信摇一摇原理解析
2017/07/22 Javascript
Angular项目中$scope.$apply()方法的使用详解
2017/07/26 Javascript
Nodejs中获取当前函数被调用的行数及文件名详解
2018/12/12 NodeJs
VUE实现密码验证与提示功能
2019/10/18 Javascript
angular8和ngrx8结合使用的步骤介绍
2019/12/01 Javascript
vue中使用带隐藏文本信息的图片、图片水印的方法
2020/04/24 Javascript
vue实现评价星星功能
2020/06/30 Javascript
python计算时间差的方法
2015/05/20 Python
通过PYTHON来实现图像分割详解
2019/06/26 Python
基于python实现微信好友数据分析(简单)
2020/02/16 Python
如何用Python和JS实现的Web SSH工具
2021/02/23 Python
50个强大璀璨的CSS3/JS技术运用实例
2010/02/27 HTML / CSS
伦敦剧院及景点门票:Encore Tickets
2018/07/01 全球购物
DOUGLAS波兰:在线销售香水和化妆品
2020/07/05 全球购物
软件配置管理有什么好处
2015/04/15 面试题
信息服务专业毕业生求职信
2014/03/02 职场文书
公职人员索取回扣检举信
2014/04/04 职场文书
《海底世界》教学反思
2014/04/16 职场文书
勤俭节约演讲稿
2014/05/08 职场文书
员工安全生产责任书
2014/07/22 职场文书
在职证明书范本(2014新版)
2014/09/25 职场文书
2015年电信员工工作总结
2015/05/26 职场文书
英语导游欢迎词
2015/09/30 职场文书
基于Golang 高并发问题的解决方案
2021/05/08 Golang
golang连接MySQl使用sqlx库
2022/04/14 Golang