JavaScript学习11:事件入门

JavaScript事件是由访问Web页面的用户引起的一系列操作,例如:用户点击鼠标,敲击键盘了等等。当用户执行类似操作的时候,再去触发执行一系列代码作为用户操作的响应,这就是所谓的事件了吧。

事件一般是用于浏览器和用户操作进行交互,通常我们将JavaScript中的事件模型分为三种:内联模型、脚本模型和DOM2模型。

内联模型

是最传统的接单的一种处理事件的方法。在这个模型中,事件处理函数是HTML标签的一个属性,用于处理指定事件。虽然内联在早期使用较多,但是它是和html混写的,并没有与html分离。下面看一个内联模型的示例:

<span style="font-size:18px;"><inputtype="button" value="按钮"onclick="alert('Lianjiangwei');" /></span>

脚本模型

由于内联模型违反了HTML与JavaScript代码层次分离的原则,为了解决这个问题,我们尝试在JavaScript中进行事件处理,这样就产生了脚本模型。示例如下:

<span style="font-size:18px;">  var input=document.getElementsByTagName('input')[0];  //得到input对象
  input.onclick=function(){                             //匿名函数执行
         alert('lianjianwei');
  };</span>

DOM2模型

在所有的现代浏览器当中——除了IE9之前的版本,都实现了DOM2标准事件模型,这个事件模型规定:每一个DOM元素所触发的事件都要经历三个阶段:一、捕获阶段;二、目标对象本身的事件处理程序调用阶段;三、冒泡阶段。

冒泡阶段:当文档元素上发生某个类型的事件时,他们会在文档树上向上传播,即调用父元素的相同类型的事件处理函数。

捕获阶段:捕获阶段好像是反向的冒泡阶段。最先调用window对象的捕获处理程序,然后是document对象的捕获处理程序,接着是body对象的,再然后是Dom树向下,以此类推,直到调用事件目标元素的父元素的捕获事件处理程序。在目标元素对象本身上注册捕获事件处理程序不会被调用。

事件处理函数

JavaScript可以处理的事件类型为:鼠标事件、键盘事件、HTML事件。

对于每一个事件而言,它都有自己的触发范围和方式,如果超出了触发范围和方式,事件处理将失效。

对于鼠标事件而言,页面所有的元素都可触发

键盘事件则是当用户按下键盘上按键时会触发,分为keydown、keypress和keyup。

而HTML事件则是当页面或者页面上的标签元素发生变化时,触发相应的事件,比如:load事件,当页面完全加载后在window上触发或者当框架集加载完毕后在框架集上触发。类似的还有unload、select、change等等。

看几个简单的代码示例如下:

<span style="font-size:18px;">//事件处理函数举例
//1 鼠标事件
input.onmousedown=function(){
         alert('你按下鼠标没放!');
}
//2 键盘事件
onkeydown=function(){
         alert('你动键盘了!');
}
//3 HTML事件
window,onscroll=function(){
         alert('你正在动滚动条!');
}</span>

小结一下:HTML是Web页面的静态描述,而JavaScript是为Web页面增添动态效果,如何让这两者进行交互,那就是我们正在看的事件了,当然这些都是事件的基础性概念,关于事件对象和事件绑定的东西,我们下回分解。

版权声明:本文为博主原创文章,未经博主允许不得转载。

时间: 2024-11-06 16:51:13

JavaScript学习11:事件入门的相关文章

JavaScript学习11 数组排序实例

JavaScript学习11 数组排序实例 数组声明 关于数组对象的声明,以前说过:http://www.cnblogs.com/mengdd/p/3680649.html 数组声明的一种方式: var array = new Array(); array.push(1); array.push(2); array.push(3); alert(array.length) 数组声明的第二种方式,并排序: var array = [1, 3, 25]; array.sort(); //对数组排序,

【JavaScript学习】-事件响应,让网页交互

什么是事件: JavaScript 创建动态页面.事件是可以被 JavaScript 侦测到的行为. 网页中的每个元素都可以产生某些可以触发 JavaScript 函数或程序的事件. 比如说,当用户单击按钮或者提交表单数据时,就发生一个鼠标单击(onclick)事件,需要浏览器做出处理,返回给用户一个结果. 主要事件表: 事件1:onclick 说明:onclick是鼠标单击事件,当在网页上单击鼠标时,就会发生该事件.同时onclick事件调用的程序块就会被执行,通常与按钮一起使用. 实例代码:

JavaScript 学习笔记— —事件委托

<!DOCTYPE html> <html> <head lang="en"> <meta charset="UTF-8"> <title></title> <script type="text/javascript"> //事件委托:利用冒泡的原理,把事件加到父级上,触发执行效果 //好处 //1.提高性能 //2.新添加的元素,还会有之前的事件 //event

JavaScript学习之事件委托

1 内存和性能 在JavaScript中,添加到页面上的事件处理程序的数量直接关系到页面的整体运行性能: 首先,每个函数都是对象,都会占用内存:内存中的对象越多,性能就越差. 其次,必须事先指定所有事件处理程序,会导致DOM访问次数增加,会延迟整个页面的交互就绪时间. 2 事件委托 事件委托就是事件目标本身不处理事件,而是把处理任务委托给其父元素或祖先元素.事件委托利用了事件冒泡,只指定一个事件处理程序,就可以管理某一类型的所有事件. 事件委托解决了"事件处理程序过多"的问题. 假定现

JavaScript学习笔记——事件

javascript事件基础和事件绑定 一.事件驱动 1.事件 javascript侦测到的用户的操作或是页面的一些行为(怎么发生的) 2.事件源 引发事件的元素.(发生在谁的身上)3.事件处理程序 对事件处理的程序或是函数 (发生了什么事) 二.事件的分类 1.鼠标事件 onclick ondblclick onmousedowm onmouseup onmousemove onmouseover onmouseout 2.键盘事件 onkeyup onkeydown onkeypress 鼠

JavaScript学习之事件

1 基本概念 1.1 事件 JavaScript与HTML之间的交互是通过事件实现的. 事件是文档或浏览器窗口中发生的一些特定的交互瞬间,在事件上可以注册处理程序,以便当事件发生时,处理程序中的代码得到执行(这种模型对应设计模式中的观察者模式). 1.2 事件流 事件流描述的是从页面接受事件的顺序. 2 事件流 2.1 事件冒泡 IE事件流叫做事件冒泡,即事件开始由最具体的元素接受,然后逐渐向上传播到较为不具体的节点. 事件冒泡能够被所有浏览器支持.注意IE5.5及更早版本的事件冒泡会跳过<ht

JavaScript学习--Item35 事件流与事件处理

1. 事件处理 1.1. 绑定事件方式 (1)行内绑定 语法: //最常用的使用方式 <元素 事件="事件处理程序"> (2)动态绑定 //结构+样式+行为分离的页面(html+css+js事件) 语法: 对象.事件=事件处理程序 行内绑定和动态绑定的重要区别: 以上程序是不可用的,点击div时,执行test函数,这时,test中的this表示window对象 因为: 我们定义test函数,实际上相应于在window对象下定义了test属性 test(); -> 相当

JavaScript学习——JS事件总结

回顾之前已经使用过的事件 (onsubmit.onclick.onload.onfocus.onblur.onmouseover.onmouseout) onfocus/onblur:聚焦离焦事件,用于表单校验的时候比较合适(出现"用户名必填"等等) onclick/ondblclick:鼠标单击和双击事件 onkeydown/onkeypress:搜索引擎使用较多 onload:页面加载事件,所有的其它操作(匿名方式)都可以放到这个绑定的函数里面去.如果是有名称,那么在html页面中

JavaScript学习总结--事件委托

一般情况下我们对一个DOM元素绑定事件时有三种方式 //省略之前代码 <div onclick="eventFn()"></div> aDiv=onclick=function(){ //... } aDiv.addEventListener('click',function(){ //... },false) 这样写是没有任何问题的(当然方法1并不可取) 但是在实际开发中我们会碰到诸如十几二十个li元素绑定事件的情况,甚至更多的元素,那么事件绑定这种给每一个元