JavaScript(7)——事件2.0

事件

【事件类型】

不同的事件类型具有不同的信息。

【UI事件】

指的是那些不一定与用户操作有关的事件。当用户与页面上的元素交互时触发。

load事件:当页面完全加载后,就会 触发window 上面的load事。

unload事件:这个事件在文档被完全卸载后触发。利用这个事件最多的情况是清除引用。

resize事件:当浏览器窗口被调整到一个新的高度或宽度时,就会触发resize事件。浏览器窗口最大化或者最小化时也会触发resize事件。

scroll事件:是在window对象上发生的,但是它实际表示的则是页面相应元素的变化。scroll事件也会在文档被滚动期间重复被触发。

【焦点事件】

在页面元素获得或者失去焦点时触发。利用这些事件并与document.hasFocus()方法及document.activeElement属性配合,可以知晓用户在页面上的行踪。

【鼠标与滚轮事件】

click:单击主鼠标时触发;

dblclick:双击主鼠标时触发;

mousedown:按下任意鼠标按钮时触发;

mouseenter:鼠标光标从元素外部首次移动到元素范围之内时触发;

mouseleave:在位于元素上方的鼠标光标移动到元素范围之外时触发;

mousemove:当鼠标指针在元素内部移动时重复地触发;

mouseout:在鼠标指针位于一个元素上方,然后用户将其移入另一个元素时触发;

mouseover:在鼠标指针位于一个元素外部,然后用户将其首次移入另一个元素边界之内时触发;

mouseup:释放鼠标按钮时触发。

【键盘与文本事件】

对键盘事件的支持主要遵循的是DOM0级。

keydown:按下键盘任意键时触发,而且如果按住不放的话,会重复触发此事件。

keypress:按下键盘上的字符键时触发,而且如果按住不放的话,会重复触发此事件。按下Esc键也会触发此事件。

keyup:释放键盘上的键时触发。

文本事件:textInput。这个事件是对keypress的补充,用意是在将文本显示给用户之前更容易拦截文本。在文本插入文本框之前会触发textInput事件。

【复合事件】

复合事件,用于处理IME的输入序列。IME(输入法编辑器)可以让用户输入在物理键盘上找不到的字符。通常需要按住多个键,但最终只输出一个字符。

compositionstart:在IME的文本复合系统打开时触发,表示要开始输入了;

compositionupdate:在向输入字段中插入新字符时触发。

compositionend:在IME的文本复合系统关闭时触发,表示返回正常键盘输入状态。

【变动事件】

DOM2级的变动事件能在DOM中的某一部分发生变化时给出提示。

删除节点:使用removeChild()和replaceChild()从DOM中删除节点。

插入节点:使用appendChild()、replaceChild()或insertBefore()方法向DOM中插入节点。

【HTML5事件】

HTML5详尽列出了浏览器应该支持的所有文件。

contextmenu事件:冒泡;用以表达何时应该显示上下文菜单,以便开发人员取消默认的上下文菜单而提供自定义的菜单。

beforeunload事件:让开发人员有可能在页面卸载前组织这一操作。将控制权交给用户。

DOMContentLoaded事件:支持在页面下载的早起添加事件处理程序。用户能够尽早地与页面进行交互。

readystatechane事件:其目的是提供与文档或元素加载状态有关的信息,支持readystatechane事件的每个对象都有一个readyState属性。包括uninitialized(未初始化),loading(正在加载),loaded(加载完毕),interactive(交互),complete(完成)这五个值。

【内存和性能】

事件委托:对“事件处理程序过多”问题的解决方案。利用了事件冒泡,只指定一个事件处理程序,就可以管理某一类型所有事件。

移除事件处理程序:

空事件处理程序:一种情况就是从文档中移除带有事件处理程序的元素。另一种是在卸载页面的时候。

【事件模拟】

模拟触发事件。有模拟鼠标事件、模拟键盘事件。IE有它自己的模拟事件的方式。

 

 

原文地址:https://www.cnblogs.com/wlfsmile/p/5886300.html