JavaScript 事件机制(四)

JavaScript 事件机制

1 什么是事件

JavaScript 使我们有能力创建动态页面。事件是可以被 JavaScript 侦测到的行为。

网页中的每个元素都可以产生某些可以触发 JavaScript 函数的事件。比方说,我们可以在用户点击某按钮时产生一个 onClick 事件来触发某个函数。事件在 HTML 页面中定义。

2 把事件绑定给元素

事件监听方式(标准方式)

addEventListener(Event, fn)    (非IE IE9+)  
attachEvent(Event, fn)  (IE8-)

btnEle.addEventListener('click', function(){

}, false) fasle表示 冒泡阶段触发(默认),设置成true,就是捕获阶段触发。

事件的捕获和冒泡
捕获阶段: 从祖先元素 到 子元素
冒泡阶段: 从子元素 到 祖先元素
事件默认在冒泡阶段触发

把事件作为元素的方法

dom.onclick = fn

把事件作为标签的内部属性

<button onclick="code..">

3 给元素解除事件绑定

标准方式绑定的事件

removeEventListener(event, fn)  (IE9+ 非IE)
detachEvent(Event, fn)   (IE8-)

其他方式绑定

重新绑定事件,用空的函数 覆盖 前面的
dom.onclick = function(){}

4 this在事件中的作用

  • 给一组元素绑定事件
  • 在元素内部 通过属性形式 <button onclick="fn(this)"> 此时this表示所在的元素

5 事件列表

5.1 鼠标事件

click        单击左键
dblclick    双击 左键
contextmenu    右单击
mouseover    鼠标悬浮
mouseout    鼠标移出
mousedown    鼠标按键按下
mouseup          鼠标按键抬起
mousemove    鼠标移动

mouseenter  鼠标悬停
mouseleave   鼠标离开

5.2 键盘事件

keydown        键盘按键 按下
keyup        键盘按键 抬起
keypress     键盘按键 按下 (只有字符按键)  (控制按键不可以 Ctrl shift 上下左右都不行)

5.3 文档事件

load            加载完成
unload            文档关闭
beforeunload     文档关闭 (兼容性好)

5.4 表单事件

submit        表单提交的时候, 绑定给form元素
reset        表单重置, 绑定给form元素
blur        失去焦点
focus        获得焦点
change        表单控制的内容改变   通常绑定给 radio checkbox select  如果绑定给输入的input, 必须满足 内容改变和失去焦点才能触发
select        input 或 textarea  内容被选中的时候触发
input    输出内容改变 触发

5.5 图片事件

abort        图片加载中断
load        图片加载完成
error        图片加载错误

5.6文档事件

load 绑定给body 绑定给window 绑定给 img 、link、script 文档加载完成
unload 文档关闭
beforeunload 文档关闭之前

5.7其他事件

scroll        元素内部的内容滚动  适合于有滚动条的元素
resize        绑定给window, 窗口尺寸发生变化

6 Event对象

6.1 分类

Event        
MouseEvent    
KeyboardEvent    
FocusEvent    
...................

6.2 属性

  • clientX 鼠标的x坐标

  • clientY 鼠标的Y坐标

  • button 鼠标按键的标示

    值
    0    按了左键
    1    按了滚轮
    2    按了右键
    
  • keyCode 键盘按键的值

  • cancelBubble 阻止事件冒泡 设置为true

  • target 返回触发此事件的元素

  • tyep 返回事件类型

  • timeStamp 返回触发事件的那一刻的时间戳(从页面打开的那一刻开始

  • altKey 返回当事件被触发时,"ALT" 是否被按下。

  • ctrlKey 返回当事件被触发时,"CTRL" 键是否被按下。

  • shiftKey 返回当事件被触发时,"SHIFT" 键是否被按下。

6.3 方法

  • stopPropagation() 阻止事件冒泡

  • preventDefault() 阻止元素默认的事

转载于:https://www.cnblogs.com/wanglecn/p/9475671.html

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/366146.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

php设计是什么意思,php – 什么是更好的设计?

我有以下课程&#xff1a;class User {public function setName($value) { ... }public function setEmailAddress($value) { ... }public function setUsername($value) { ... }public function getName() { ... }public function getEmailAddress() { ... }public function g…

JavaScript——根据数组中的某个值进行排序

我这里是根据次数进行倒叙,可根据自己情况进行修改 function sortKey(array,key){return array.sort(function(a,b){var x a[key];var y b[key];return ((x>y)?-1:(x<y)?1:0)}) }; 转载于:https://www.cnblogs.com/wangyang0210/p/10185494.html

Java防止Xss注入json_每日一题(java篇) 如何防止xss注入

1、XssAndSqlHttpServletRequestWrapper 类&#xff1a;import java.util.regex.Pattern; import javax.servlet.http.HttpServletRequest; import javax.servlet.http.HttpServletRequestWrapper; public class XssAndSqlHttpServletRequestWrapper extends HttpServletReques…

【工具相关】web-HTML/CSS/JS Prettify的使用

一&#xff0c;打开Sublime Text,代码如下面所示。 二&#xff0c;鼠标右键--->HTML/CSS/JS Prettify--->Prettify Code.代码如图所示&#xff0c;明显的代码变得整齐了。 更多专业前端知识&#xff0c;请上 【猿2048】www.mk2048.com

centos 多个mysql,Centos中安装多个MySQL数据的配置实例

这篇文章主要为大家详细介绍了Centos中安装多个MySQL数据的配置实例&#xff0c;具有一定的参考价值&#xff0c;可以用来参考一下。感兴趣的小伙伴&#xff0c;下面一起跟随512笔记的小编小韵来看看吧&#xff01;注:本文档做了两个MYSQL实例,多个实例方法以此类推LINUX操作系…

MS SQL 分页存储过程

最近换了家新公司&#xff0c;但是新公司没有使用分页的存储过程。那我就自个写一个往项目上套 &#xff08;效率怎么样就不怎么清楚没有详细的测试过&#xff09; CREATE PROCEDURE [dbo].[pro_common_pageList](tab NVARCHAR(MAX) ,---表名PrimaryKey VARCHAR(100) , --主键I…

了解Spring Web初始化

几年前&#xff0c;我们大多数人习惯到处编写XML配置文件&#xff0c;甚至可以设置简单的Java EE应用程序。 如今&#xff0c;使用Java或Groovy来配置项目已成为一种首选方式–您只需要看一下Spring框架的其他版本中引入的Gradle或功能&#xff0c;就可以对此进行总结。 现在&…

STM32CubeMX HAL库串口+DMA数据发送不定长度数据接收

参考资料&#xff1a;1、ST HAL库官网资料 2、https://blog.csdn.net/u014470361/article/details/79206352#comments 一、STM32CubeMX配置外部时钟 注意在进行外部时钟配置时&#xff0c;即“High Speed Clock”和“Low Speed Clock”需配置成“Crytal/Ceramic Resonator&…

浅谈自记忆函数

浅谈自记忆函数 最近阅读《JavaScript忍者秘籍》看到了一种有趣的函数&#xff1a;自记忆函数。 简介 何为自记忆函数&#xff1f;书中提到&#xff1a; 记忆化&#xff08;memoization&#xff09;是一种构建函数的处理过程&#xff0c;能够记住上次计算结果 通过这句话可以…

pyqt5 qlabel无法显示图片_实战PyQt5: 011-单选框控件QRadioButton

单选框QRadioButton简介QRadioButton为单选按钮&#xff0c; 可以选中(打开)或者取消选中(关闭)。在一组单选按钮中&#xff0c;一次只能选中其中的一个按钮。选中或者取消选中QRadioButton&#xff0c; 都会发出toggled()信号。使用isChecked()可以查看是否选择了某个QRadioBu…

matlab数据游标不能使用,启用数据游标模式

文本解释器&#xff0c;指定为下列值之一&#xff1a;tex - 使用 TeX 标记子集解释字符。latex - 使用 LaTeX 标记解释字符。none - 显示字面字符。TeX 标记默认情况下&#xff0c;MATLAB 支持一部分 TeX 标记。使用 TeX 标记可添加下标和上标&#xff0c;修改字体类型和颜色&a…

MySQL 快速定位性能问题

一、性能查看几款小工具&#xff1a;Top 查看&#xff1a;观察 load average &#xff1a;1分钟&#xff0c;5分钟&#xff0c;15分钟的平均负载值1. us% 用户使用的 CPU 占比&#xff0c;如果 us% 太高&#xff0c; 极有可能索引使用不当。2. sy% 系统内核使用的CPU占比&#…

使用Google GSON:额外的赠品:第二部分

如果您错过了系列的第一篇文章 &#xff0c;我们将继续上一篇文章的“使用GSON ” &#xff0c;这里是link 。 因此&#xff0c;这里我们进行另一系列的讨论。 版本支持 如果要维护一个对象的多个版本以进行JSON转换&#xff0c;则Google GSON库具有不错的Since注释。 该注释可…

Python开发【第2节】【Python运算符】

Python语言支持以下类型的运算符: 算术运算符比较&#xff08;关系&#xff09;运算符赋值运算符逻辑运算符位运算符成员运算符身份运算符运算符优先级1、算术运算符 假设变量a 10&#xff0c;变量b 21&#xff1a; 运算符描述实例加 - 两个对象相加a b 输出结果 31-减 - 得…

mybatis-plus分页查询_SpringBoot + MyBatisPlus 快速入门

Hello,大家好&#xff01;前面与大家分享了一次如何搭建Java项目脚手架&#xff0c;并且送给大家一个基础项目模板。那今天与大家分享如何使用这个基础项目&#xff0c;也就是快速上手 SpringBoots ➕ MyBatisPlus。 项目 / 目录结构 天津商业大学学院信息 这是一张天津商业大学…

php 获取每年的节假日,shell获取每年农历节日的日期

原创内容&#xff0c;转载请注明出处&#xff1a;https://www.myzhenai.com.cn/post/3711.html我打算自己写一个每年节日就自动在网站上展示灯笼的源码功能&#xff0c;但是这里最重要的是要获得每年春节、端午节、中秋节等节日的日期&#xff0c;因为要自己写这判断这些日期的…

AJAX跨域问题解决方法(1)——禁止浏览器进行跨域限制

思路&#xff1a;通过命令行修改浏览器启动参数&#xff0c;使得浏览器不进行跨域检查&#xff0c;从而允许跨域 方法&#xff1a;命令行参数启动浏览器后添加参数--disable-web-security 例&#xff1a;chrome --disable-web-security --disabl-web-security参数的作用是禁…

Android Studio 管理所有程序退出

import android.app.Activity; import java.util.ArrayList; import java.util.List;public class fa {public static List<Activity> activitieanew ArrayList<>();public static void add(Activity act){activitiea.add(act);//在创建活动是加入}public static v…

项目学生:Web服务集成

这是Project Student的一部分。 其他职位包括带有Jersey的 Web服务 客户端&#xff0c;带有Jersey的 Web服务服务器 &#xff0c; 业务层 &#xff0c; 具有Spring数据的持久性和分片集成测试数据 。 早些时候&#xff0c;我们成功地针对持久性/业务层&#xff08;使用嵌入式H…

python爬虫requests实战_Python爬虫之requests库网络爬取简单实战

实例1&#xff1a;直接爬取网页 实例2 &#xff1a; 构造headers&#xff0c;突破访问限制&#xff0c;模拟浏览器爬取网页 实例3 &#xff1a; 分析请求参数&#xff0c;构造请求参数爬取所需网页 实例4&#xff1a; 爬取图片 实例5&#xff1a; 分析请求参数&#xff0c;构造…