JavaScript中的事件

1 事件(Event)

事件也就是用户或者浏览器执行的某种动作,而JS与Html之间的交互是通过事件而来的。使用仅在事件发生时执行的**监听器(事件处理程序)**来订阅事件。web浏览器可以发生多种事件,在DOM3 Events定义了如下事件类型:

  • 用户界面事件(UIEvent):涉及与BOM交互的通用浏览器事件
  • 焦点事件(FocusEvent):在元素获得和失去焦点时触发
  • 鼠标事件(MouseEvent)
  • 滚轮事件(WheelEvent):使用鼠标滚轮时触发
  • 输入事件(InputEvent)
  • 键盘事件(KeyboardEvent)
  • 合事事件(CompositionEvent):在使用某种IME(Input Method Editor,输入法编辑器)输入字符时触发

1.1 事件处理程序

事件处理器(或事件监听器),就是来响应某个事件的函数。主要有HTML事件处理程序、DOM0事件处理程序和DOM2事件处理程序。

1.1.1 HTML事件处理程序

也就是直接将事件函数写在HTML元素的属性上,而所要执行的函数代码,实际上是通过JS引擎由eval()调用的,它是全局作用域。举个例子:

<button onclick="alert('hello,world')">button>

同时它也可以写成这样:

<button onclick="printHello()">button>
<script>
	function printHello() {
		alert(this)//object window
		alert('hello,world');
	}
script>

HTML事件处理程序有一定的缺点:

  1. 时机问题:比如当

你可能感兴趣的:(重学JavaScript,javascript,开发语言,ecmascript)