JavaScript学习11:事件入门

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

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

         内联模型

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

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

         脚本模型

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

<span style="font-size:18px;">  var input=document.getElementsByTagName('input')[0];  //得到input对象
  input.οnclick=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.οnmοusedοwn=function(){
         alert('你按下鼠标没放!');
}
//2 键盘事件
οnkeydοwn=function(){
         alert('你动键盘了!');
}
//3 HTML事件
window,οnscrοll=function(){
         alert('你正在动滚动条!');
}</span>

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

  • 2
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 3
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 3
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值