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

JS事件类型

Web浏览器中可能发生的事件有很多类型,下面是几种常用的事件类型:

   UI事件,焦点事件,鼠标与滚轮事件,键盘与文本事件,复合事件变动事件,HTML5事件设备事件,触摸与手势事件。

  UI 事件:UI事件中UI即(User Interface,用户界面),当用户与页面桑拿的元素交互时触发。

1.UI事件中主要包括load,unload,abort,error,select,resize,scroll事件。

1.load事件

   此事件为当页面完全加载完之后(包括所有的图像、js文件、css文件等外部资源),就会触发window上面的load事件。

   这个事件是JavaScript中最常用的事件,比如我们经常会使用window.οnlοad=function(){};这种形式,即当页面完全加载完之后执行其中的函数。

2.unload事件

   显然,这个事件是与load事件相对的。在文档被完全卸载后触发。用户从一个页面切换到另一个页面就会触发unload时间。利用这个事件最多的情况是清楚引用,避免内存泄漏。

   这个事件同样有两种方式来指定。一种是JavaScript方式,使用EventUtil.addHandler();另一种就是在body元素中添加一个特性。

     值得注意的是,一定要小心编写onload事件中的代码,因为它是在页面卸载后才触发,所以说页面加载后存在的那些对象,在onload触发之后就不一定存在了!

3.resize事件

    当调整浏览器的窗口到一个新的宽度或高度时,就会触发resize事件。这个事件在window(窗口)上面触发。因此同样可以通过JS或者body元素中的onresize特性来指定处理程序。 

4.scroll事件

  这个事件会在文档被滚动期间重复被触发,所以应当尽量保持事件处理程序的代码简单。

第二部分:焦点事件

  焦点事件会在页面元素获得或失去焦点时触发。主要有下面几种:

  • blur   在元素失去焦点时触发。这个事件不冒泡,所有浏览器都支持。
  • focus   在元素获得焦点时触发。这个事件不冒泡,所有浏览器都支持。
  • focusin  在元素获得焦点时触发。这个事件冒泡,某些浏览器不支持。
  • focusout 在元素失去焦点时触发。这个事件冒泡,某些浏览器不支持。

  注意:即使blur和focus不冒泡,也可以在捕获阶段侦听到他们。

第三部分:鼠标与滚轮事件

  鼠标事件是Web开发中最常用的一类事件,因为鼠标是最主要的定位设备。

  • click---用户单击鼠标左键或按下回车键触发
  • dbclick---用户双击鼠标左键触发。
  • mousedown---在用户按下了任意鼠标按钮时触发。
  • mouseenter---在鼠标光标从元素外部首次移动到元素范围内时触发。此事件不冒泡
  • mouseleave---元素上方的光标移动到元素范围之外时触发。不冒泡
  • mousemove---光标在元素的内部不断的移动时触发。
  • mouseover---鼠标指针位于一个元素外部,然后用户将首次移动到另一个元素边界之内时触发。
  • mouseout---用户将光标从一个元素上方移动到另一个元素时触发。   
  • mouseup---在用户释放鼠标按钮时触发。

 

第四部分:键盘和文本事件

  •   该部分主要有下面几种事件:

    1. keydown:当用户按下键盘上的任意键时触发。按住不放,会重复触发。
    2. keypress:当用户按下键盘上的字符键时触发。按住不放,会重复触发。
    3. keyup:当用户释放键盘上的键时触发。
    4. textInput:这是唯一的文本事件,用意是将文本显示给用户之前更容易拦截文本。

    这四个事件在用户通过文本框输入文本时才最常用到。

 参考:https://www.cnblogs.com/zhuzhenwei918/p/6142228.html

 

 

转载于:https://www.cnblogs.com/smileke/p/9944043.html

相关文章:

  • ansible批量管理工具
  • json 序列化和反序列化的3个方法
  • Mac 启动 ssh 服务
  • Logstash 6.4.3 导入 csv 数据到 ElasticSearch 6.4.3
  • 指定spring中bean启动的顺序
  • utp
  • 把图片上的文字转换成word文字?
  • Ajax请求参数到一个URL包含下划线或者v(_、v)
  • Hibernate基础入门
  • Sitecore 9有什么新功能
  • r语言
  • redis入门学习记录(一)
  • Python并发编程之协程
  • A. A Prank
  • 二分搜索-poj2785
  • 【腾讯Bugly干货分享】从0到1打造直播 App
  • C# 免费离线人脸识别 2.0 Demo
  • es6
  • Git初体验
  • iOS 颜色设置看我就够了
  • magento2项目上线注意事项
  • Spring Boot快速入门(一):Hello Spring Boot
  • 更好理解的面向对象的Javascript 1 —— 动态类型和多态
  • 基于Android乐音识别(2)
  • 区块链技术特点之去中心化特性
  • 深入浅出webpack学习(1)--核心概念
  • 主流的CSS水平和垂直居中技术大全
  • 2017年360最后一道编程题
  • NLPIR智能语义技术让大数据挖掘更简单
  • 教程:使用iPhone相机和openCV来完成3D重建(第一部分) ...
  • (2)(2.10) LTM telemetry
  • (C++)八皇后问题
  • (Demo分享)利用原生JavaScript-随机数-实现做一个烟花案例
  • (超详细)2-YOLOV5改进-添加SimAM注意力机制
  • (带教程)商业版SEO关键词按天计费系统:关键词排名优化、代理服务、手机自适应及搭建教程
  • (教学思路 C#之类三)方法参数类型(ref、out、parmas)
  • (考研湖科大教书匠计算机网络)第一章概述-第五节1:计算机网络体系结构之分层思想和举例
  • (六) ES6 新特性 —— 迭代器(iterator)
  • (每日持续更新)jdk api之StringBufferInputStream基础、应用、实战
  • (三)模仿学习-Action数据的模仿
  • (学习日记)2024.01.09
  • (译) 理解 Elixir 中的宏 Macro, 第四部分:深入化
  • (原创)Stanford Machine Learning (by Andrew NG) --- (week 9) Anomaly DetectionRecommender Systems...
  • (原創) 如何將struct塞進vector? (C/C++) (STL)
  • ***原理与防范
  • *Django中的Ajax 纯js的书写样式1
  • .net core 源码_ASP.NET Core之Identity源码学习
  • .net图片验证码生成、点击刷新及验证输入是否正确
  • .Net中的集合
  • .net专家(高海东的专栏)
  • 。Net下Windows服务程序开发疑惑
  • @ConditionalOnProperty注解使用说明
  • [ C++ ] STL---string类的模拟实现
  • [2669]2-2 Time类的定义
  • [CC2642R1][VSCODE+Embedded IDE+IAR Build+Cortex-Debug] TI CC2642R1基于VsCode的开发环境