JS技术

JavaScript之事件的类型

字号+ 作者: 来源: 2014-11-16 22:20 我要评论( )

JavaScript之事件的类型

  根据触发事件的事件和事件发生的对象,可将浏览器中发生的事件分成几个类型。DOM标准定义了以下几组事件:
  鼠标事件:用户使用鼠标进行特定操作时触发;
  键盘事件:用户在键盘上敲击、输入时触发;
  HTML事件:窗口发生变动或者发生特定的客户端-服务器端交互时触发;
  突变事件:底层的DOM结构发生改变时触发。
  (一) 鼠标事件
  鼠标事件是Web最常用的事件类型。其中包含以下事件:
  click——用户点击鼠标左键时发生(如果右键也按下则不会发生)。当用户的焦点在按钮上,并按了回车键,同样会触发这个事件。
  dblclick——用户双击鼠标左键时发生(如果右键也按下则不会发生)。

  mousedown——用户点击任意一个鼠标按钮时发生。
  mouseout——鼠标指针在某个元素上,且用户正要将其移出元素的边界时发生。
  mouseup——用户松开任意一个按钮时发生。
  mousemove——鼠标在某个元素上时持续发生。
  页面上的所有元素都支持鼠标事件。
  1、 事件的属性
  每个鼠标事件都会给以下event对象的属性填入值:
  坐标属性(例如clientX和clientY等);
  type属性;
  target(DOM)或srcElement(IE)属性;
  shiftKey、ctrlKey、altKey、metaKey(DOM)属性;
  button属性(只在mousedown、mouseover、mouseout、mousemove、mouseup事件中,对于mouseover和mouseout事件,事件对象还有额外的属性。在IE中,formElement属性包含鼠标指针来自的元素,同时toElement包含鼠标指针去往的元素。对于mouseover事件,toElement总是等于srcElement,而对于mouseout事件,formELement总是等于srcElement)。
  因为这种冗余,所以DOM对mouseover和mouseout只支持一个event属性relatedTarget。
在mouseover事件中,relatedTarget指出鼠标指针来自何处。在mouseout事件中,relatedTarget指出鼠标指针去往何方。
  2、 顺序
  click事件触发前,会先发生mousedown事件,然后发生mouseup事件。类似地,要触发dblclick事件,在同一个目标上要按顺序发生以下事件:
  (1) mousedown;
  (2) mouseup;
  (3) click;
  (4) mousedown;
  (5) mouseup;
  (6) click;
  (7) dblclick。
  移动鼠标从一个对象进入另一个对象时,先发生的事件是mouseout(发生在鼠标移出的那个对象),接着,在这两个对象都触发mousemove事件。最后,在鼠标进入的那个对象上触发mouseover事件。
  (二) 键盘事件
  键盘事件由用户对键盘的动作引发。有以下键盘事件:
  keydown——用户在键盘上按下某按键时发生。一直按着某按键,它则会不断触发(浏览器除外)。
  keypress——用户按下一个按键,并产生一个字符时发生(也就是不管类似shift、alt之类的键)。一直按下按键时,它则会持续发生。
  keyup——用户释放按着的按键时发生。
  1、 事件的属性
  对每个键盘事件,会填入以下的事件属性:
  keyCode属性;
  charCode属性(仅DOM);
  target(DOM)或者srcElement(IE)属性;
  shiftKey、ctrlKey、altKey和metaKey(DOM)属性。
  注意:按下shift、ctrl、alt或者meta键时,除设置对应的属性为true外,还都会引发keydown事件。
  2、 顺序
  用户按一次某字符按键时,会按以下顺序发生事件:
  (1) keydown;
  (2) keypress;
  (3) keyup;
  如果用户按一次某非字符键(例如shift),会按以下顺序发生事件:
  (1) keydown;
  (2) keyup。
  如果用户按下一个字符按键且不放,keydown和keypress事件将逐个持续触发,直到松开按键;如果用户按下非字符按键且不放,将只有keydown事件持续触发。
  (三) HTML事件
  load事件——页面完全载入后,在window对象上触发;所有的框架都载入后,在框架集上触发;<img/>完全载入后,在其上触发;或者 对于<object/>元素,当其完全载入后在其上触发。
  unload事件——页面完全卸载后,在window对象上触发;所有的框架都卸载后,在框
架集上触发;<img/>完全卸载后,在其上触发;或者 对于<object/>元素,当其完全卸载后在其上触发。
  abort事件——用户停止下载过程时,如果<object/>对象还未完全载入,就在其上触发。
  error事件——JavaScript脚本出错时,在window对象上触发;某个<img/>的指定图像无法载入时,在其上触发;或<object/>元素无法载入时触发;或者框架集中的一个或多个框架无法载入时触发。
  select事件——用户选择了文本框中的一个或多个字符时触发。
  change事件——文本框失去焦点时并且在它获取焦点后内容发生过改变时触发;某个<select/>元素的值发生改变时触发。
  submit事件——点击提交按钮时,在<form/>上触发。
  reset事件——点击重置按钮时,在<form/>上触发。
  resize事件——窗口或者框架的大小发生改变时触发。
  scroll事件——用户在任何带滚动条的元素上卷动它时触发。<body/>元素包含载入页面的滚动条。 scrollLeft,它保存窗口在水平向上卷动的距离,scrollTop,它保存窗口在垂直方向上卷动的距离。
  focus事件——任何元素或者窗口本身获取焦点(用户点击它、Tab键切换到它或者任何其他与它交互的手段)触发。
  blur事件——任何元素或者窗口本身失去焦点时触发。

 

1.本站遵循行业规范,任何转载的稿件都会明确标注作者和来源;2.本站的原创文章,请转载时务必注明文章作者和来源,不尊重原创的行为我们将追究责任;3.作者投稿可能会经我们编辑修改或补充。

相关文章
  • WEB前端教程-JavaScript里的类和继承

    WEB前端教程-JavaScript里的类和继承

    2016-01-21 15:28

  • 高性能动画“box-shadow”属性 - FedFun - 博客频道 - CSDN.NET FedFun 爱前端,乐分

    高性能动画“box-shadow”属性 - FedFun - 博客频道 - CSDN.NET FedF

    2015-12-14 16:15

  • JS开发者调查 - FedFun - 博客频道 - CSDN.NET FedFun 爱前端,乐分享,前端痴王海庆的博客!

    JS开发者调查 - FedFun - 博客频道 - CSDN.NET FedFun 爱前端,乐分

    2015-12-13 11:08

  • Jquery下编写流行的前端的应用源码_Javascript教程

    Jquery下编写流行的前端的应用源码_Javascript教程

    2015-10-01 09:24

网友点评
a