jQuery学习---------认识事件处理
3种事件模型:
原始事件模型
DOM事件模型
IE事件模型
原始事件模型(0级事件模型)
1、事件处理程序被定义为函数实例,然后绑定到DOM元素事件对象上,实现事件的注册。
例子:var btn = document.getElementsByTagName("input")[0];
btn.onclick = function(){
函数体....
}
2、也可以把特定的事件处理函数的函数体直接赋给DOM元素的事件属性
例子:<input type="button" οnclick="alert('hello')"
0级事件模型的优缺点:
优点:使用方便
缺点:元素属性被用来存储事件处理函数的引用,
所以每个元素的每个事件只能注册一个事件处理程序。
DOM事件模型:
1、注册事件
addEventListener()方法:
语法:addEventListener("type",function,useCapture)
参数:type:是要绑定的事件类型,但是这里没有“on”前缀。
如onclick事件应写作:click
function:事件处理函数,自带一个默认参数,引用event对象
usrCapture:是一个布尔值,
为true时:在事件传播的捕捉阶段触发响应;
为false时:在事件传播的冒泡阶段触发响应
例子:var btn = document.getElementsByTagName("input")[0];
btn.addEventListener("click",function(){
btn.value = event.type;
},true)
2、事件传播
DOM 2级事件模型中,一旦事件被触发,事件流首先从DOM树的顶部(文档节点#document)向下传播,直到目标节点,然后再从目标节点向上传播到DOM树顶。
从上到下的过程被称为捕获阶段,
从下到上的过程被称为冒泡阶段。
终止事件流的冒泡:stopPropagegation()方法
例子:var btn = document.getElementsByTagName("input")[0];
do{
btn.addEventListener("click",function(){
div.innerHTML += " "+this.nodeName+" ";
},true)
btn = btn.parentNode;
}while(btn);
上例中,第三个参数设置为true,注册的是捕获型事件。
所以点击按钮,事件触发顺序为:#document->html->body->button
如果,第三个参数设置为false,注册的是冒泡型事件。
所以点击按钮,事件的触发顺序为:button->body->html->#document
3、销毁事件
removeEventListener()方法:
注意:removeEventListener()和addEventListener()的第三个参数要保持一致
否则销毁操作是无效的。
IE事件模型:
1、注册事件:
attachEvent()方法:
语法:attachEvent("type",function)
参数:type:元素事件类型,如:onclick
function:事件处理函数
注意:IE时间模型中,事件处理函数中的this指针总是指向window对象,
0型事件模型中,事件处理函数中的this指针总是指向当前注册事件的对象
2、事件传播:
IE事件模型:事件流总是从目标对象向上传递知道树顶,即冒泡型。
终止事件流的冒泡:设置event对象的cancelBubble属性
3、注销事件:
detachEvent()方法
事件处理机制:
Event对象:
当触发事件时,浏览器会自动创建一个event对象,
event对象实际上是Event类型的实例,
默认状态下他会被作为参数传递给事件处理函数
实现访问的兼容性:
var event = event||window.event;
注意:IE和DOM标准浏览器返回的event对象的属性和方法存在差异!!!
转载于:https://blog.51cto.com/7613943/1437355
相关文章:
C++中的虚函数表介绍
在C语言中,当我们使用基类的引用或指针调用一个虚成员函数时会执行动态绑定。因为我们直到运行时才能知道到底调用了哪个版本的虚函数,所以所有虚函数都必须有定义。通常情况下,如果我们不使用某个函数,则无须为该函数提供定义。但是我们必须…

AI如何赋能金融行业?百度、图灵深视等同台分享技术实践
近日,由BTCMEX举办的金融技术创新研讨会在北京举办。BTCMEX投资人李笑来,AI技术公司TuringPass、百度、美国Apache基金会项目Pulsar、区块链安全公司SlowMist等相关专家参加了此次会议,共同探讨了金融技术在创新方面的现状。 图灵深视副总裁许…

【Win32 API学习]打开可执行文件
在MFC中打开其他可执行文件常用到的方法有:WinExec、ShellExecute、CreatProcess。 1.WinExec WinExec 主要运行EXE文件,用法简单,只有两个参数,前一个指定命令路径,后一个指定窗口显示方式: UINT WinExec(…

支付宝接口使用文档说明 支付宝异步通知
支付宝接口使用文档说明 支付宝异步通知(notify_url)与return_url. 现支付宝的通知有两类。 A服务器通知,对应的参数为notify_url,支付宝通知使用POST方式 B页面跳转通知,对应的参数为return_url,支付宝通知使用GET方式 ÿ…

完全隐藏Master Page Site Actions菜单只有管理员才可以看见
1. 在Master Page Head 增加下面的Style <style type"text/css"> .ms-cui-tt{visibility:hidden;} </style> 2. 增加SPSecurityTrimmedControl <SharePoint:SPRibbonPeripheralContent runat"server" Location"TabRowLeft&qu…
深度学习中的随机梯度下降(SGD)简介
随机梯度下降(Stochastic Gradient Descent, SGD)是梯度下降算法的一个扩展。机器学习中反复出现的一个问题是好的泛化需要大的训练集,但大的训练集的计算代价也更大。机器学习算法中的代价函数通常可以分解成每个样本的代价函数的总和。随着训练集规模增长为数十亿…

推荐系统中的前沿技术研究与落地:深度学习、AutoML与强化学习 | AI ProCon 2019...
整理 | 夕颜出品 | AI科技大本营(ID:rgznai100)个性化推荐算法滥觞于互联网的急速发展,随着国内外互联网公司,如 Netflix 在电影领域,亚马逊、淘宝、京东等在电商领域,今日头条在内容领域的采用和推动&…

运维日志管理系统
因公司数据安全和分析的需要,故调研了一下 GlusterFS lagstash elasticsearch kibana 3 redis 整合在一起的日志管理应用:安装,配置过程,使用情况等续一,glusterfs分布式文件系统部署:说明…

NLP学习思维导图,非常的全面和清晰
作者 | Tae Hwan Jung & Kyung Hee编译 | ronghuaiyang【导读】Github上有人整理了NLP的学习路线图(思维导图),非常的全面和清晰,分享给大家。先奉上GitHub地址:https://github.com/graykode/nlp-roadmapnlp-roadm…
Go在windows10 64位上安装过程
1. 从 https://golang.org/dl/ 下载最新的发布版本go1.10即go1.10.windows-amd64.msi; 2. 双击go1.10.windows-amd64.msi ,使用默认选项,默认会安装到C:\Go目录下; 3. 将C:\Go\bin目录添加到系统环境变量中(默认已自动添加),此目录下有go.exe…

Windows SharePoint Services 3.0 应用程序模板
微软发布的一些WSS模板,看了一下,跟以前看到的模板好像不同模板分两类,一类是站点管理模板,一类是服务器管理模板站点管理模板:董事会、业务绩效报告、政府机构案例管理、课堂管理、临床试验启动和管理、竞争性分析站点…

HAProxy+Keepalived高可用负载均衡配置
一、系统环境:系统版本:CentOS5.5 x86_64master_ip:172.20.27.40backup_ip:172.20.27.50 vip:172.20.27.200web_1: 172.20.27.90web_2:172.20.27.100二、haproxy安装:1.首先172.20.27.40安装上安装:1.1安装 tar zxvf haproxy-1.3.…
Go在Ubuntu 14.04 64位上的安装过程
1. 从 https://golang.org/dl/ 或 https://studygolang.com/dl 下载最新的发布版本go1.10即go1.10.linux-amd64.tar.gz; 2. 将下载的tar包解压缩到/usr/local目录下,执行以下命令,结果如下: $ sudo tar -C /usr/local -xzf go1.…

毕业就拿阿里offer,你和他比差在哪?
我在大学的时候,真的遇到一个神人,叫他小马吧。超前学习。1024,是程序员的节日,恰逢CSDN的20周年,我们准备为你做件大事!我们与AI博士唐宇迪、畅销书作家、北大硕士阿甘等4位老师,共同为大家带来…

04号团队-团队任务5:项目总结会
1.团队信息 团队序号:04 开发项目:北软毕设管理系统 整理人:丛云聪 学号:2017035107185 在团队中的职务:项目经理兼产品经理 2.代码仓库地址 主仓库:https://gitee.com/The_Old_Cousin/StuInfoManage…

微软职位内部推荐-Sr SDE for Win Apps Ecosystem
微软近期Open的职位:Job posting title: Senior Software Design EngineerLocation: China, BeijingLevel: 63Division: Operations System Group EngineeringGroup OverviewOSG is delivering flagship products in Microsoft. China is a second largest economy in the worl…

C# Winform 启动和停止进程
启动和停止进程 一、启动进程 方法1: (1) 创建一个Process组件的实例,例如: Process myProcess new Process(); (2) 设置其对应的StartInfo属性,指定要运行的应用程序名…
在Windows/Ubuntu上使用Visual Studio Code作为Go语言编辑器操作步骤
下面以在Windows10上操作为例,在Ubuntu上操作步骤与windows一致: 1. 从 https://code.visualstudio.com/ 下载windows上的最新发布版本1.21.1,即VSCodeSetup-x64-1.21.1.exe; 2. 以管理员身份运行VSCodeSetup-x64-1.21.1.exe&…

实战:基于tensorflow 的中文语音识别模型 | CSDN博文精选
作者 | Pelhans来源 | CSDN博客目前网上关于tensorflow 的中文语音识别实现较少,而且结构功能较为简单。而百度在PaddlePaddle上的 Deepspeech2 实现功能却很强大,因此就做了一次大自然的搬运工把框架转为tensorflow….简介百度开源的基于PaddlePaddle的…

js获取Html元素的实际宽度高度
第一种情况就是宽高都写在样式表里,就比如#div1{width:120px;}。这中情况通过#div1.style.width拿不到宽度,而通过#div1.offsetWidth才可以获取到宽度。第二种情况就是宽和高是写在行内中,比如style"width:120px;",这中…

新框架ES-MAML:基于进化策略、简易的元学习方法
作者 | Xingyou Song、Wenbo Gao、Yuxiang Yang、Krzysztof Choromanski、Aldo Pacchiano、Yunhao Tang译者 | TroyChang编辑 | Jane出品 | AI科技大本营(ID:rgznai100)【导读】现有的MAML算法都是基于策略梯度的,在试图利用随机策…
Tesseract-OCR 3.04简单使用举例(读入图像输出识别结果)
下面code是对Tesseract-OCR 3.04版本进行简单使用的举例:包括两段,一个是读入带有中文字符的图像,一个是读入仅有英文字符的图像: #include "funset.hpp"#include <iostream> #include <string> #include &…

坑爹的微软官方文档:SQL无人值守安装
我在部署项目的时候,需要用批处理无人值守安装SQLserver,.Net等组件。 于是查了微软官方文档,其中一项内容如下: http://msdn.microsoft.com/zh-cn/library/ms144259.aspx SQL Server 安装程序控件 /IACCEPTSQLSERVERLICEN…

各种 django 静态文件的配置总结【待续】
2019独角兽企业重金招聘Python工程师标准>>> 最近在学习django框架的使用,想引用静态css文件,怎么都引用不到,从网搜了好多,大多因为版本问题,和我现在的使用的dango1.1配置不同,根据资料和公司…

实战:人脸识别的Arcface实现 | CSDN博文精选
来源 | CSDN博客本文将简单讲述arcface从训练到部署的整个过程,主要包括前期的数据筛选和准备,模型训练以及模型部署。此文参考的arcface的代码地址:https://github.com/ronghuaiyang/arcface-pytorch数据集准备1. 首先准备需要训练的人脸数据…
Windows7/10上快速搭建Tesseract-OCR开发环境操作步骤
之前在https://blog.csdn.net/fengbingchun/article/details/51628957 中描述过如何在Windows上搭建Tesseract-OCR开发环境,那时除了需要clone https://github.com/fengbingchun/OCR_Test 工程外,还需要依赖 https://github.com/fengbingchun/Liblept_T…

C#基础系列:实现自己的ORM(反射以及Attribute在ORM中的应用)
反射以及Attribute在ORM中的应用 一、 反射什么是反射?简单点吧,反射就是在运行时动态获取对象信息的方法,比如运行时知道对象有哪些属性,方法,委托等等等等。反射有什么用呢?反射不但让你在运行是获取对象…

Network | sk_buff
sk_buff结构可能是linux网络代码中最重要的数据结构,它表示接收或发送数据包的包头信息。它在中定义,并包含很多成员变量供网络代码中的各子系统使用。 这个结构被不同的网络层(MAC或者其他二层链路协议,三层的IP,四…
吴恩达老师深度学习视频课笔记:深度学习的实用层面
训练、验证和测试数据集(training、development and test sets):训练神经网络时,我们需要作出很多决策,如神经网络分多少层(layers)、每层含有多少个隐藏层单元(hidden units)、学习率(learning rates)、各层采用哪些激活函数(activation fun…

FtpCopy数据定时自动备份软件(FTP定时备份)
1. 软件说明 FtpCopy是一款免费的FTP数据自动备份软件,如果FtpCopy对您有较大的帮助,欢迎捐赠我们,我们对您表示衷心的感谢! 如果有需求的话会一直更新下去,将软件做到极致! 有问题可直接“反馈留言”。 特…