事件驱动及事件处理

原创 2012年03月30日 11:26:29

基本概念

JavaScript是基于对象(object-based)的语言。这与Java不同,Java是面向对象的语言。而基于对象的基本特征,就是采用事件驱动(event-driven)。它是在形界面的环境下,使得一切输入变简单化。通常鼠标或热键的动作我们称之为事件(Event),而由鼠标或热键引发的一连串程序的动作,称之为事件驱动(Event Driver)。而对事件进行处理程序或函数,我们称之为事件处理程序(Event Handler)。

事件处理程序

JavaScript中对象事件的处理通常由函数(Function)担任。其基本格式与函数全部一样,可以将前面所介绍的所有函数作为事件处理程序。格式如下:

Function 事件处理名(参数表){

事件处理语句集;

……

}

事件驱动

JavaScript事件驱动中的事件是通过鼠标或热键的动作引发的。它主要有以下几个事件:

单击事件onClick

当用户单击鼠标按钮时,产生onClick事件。同时onClick指定的事件处理程序或代码将被调用执行。通常在下列基本对象中产生:

button(按钮对象)

checkbox(复选框)或(检查列表框) 

radio (单选钮) 

reset buttons(重要按钮) 

submit buttons(提交按钮) 

例:可通过下列按钮激活change()文件:

<Form>	<Input type="button" Value="" onClick="change()"></Form>

onClick等号后,可以使用自己编写的函数作为事件处理程序,也可以使用JavaScript中内部的函数。还可以直接使用JavaScript的代码等。例: 

<Input type="button" value=" " onclick=alert("这是一个例子");

onChange改变事件

当利用texttextarea元素输入字符值改变时发该事件,同时当在select表格项中一个选项状态改变后也会引发该事件。

例:

<Form>
	<Input type="text" name="test" value="test"
		onCharge="check(this.test)">
</Form>

选中事件onSelect

TextTextarea对象中的文字被选中后,引发该事件。

获得焦点事件onFocus

当用户单击Texttextarea以及select对象时,产生该事件。此时该对象成为前台对象。

失去焦点onBlur

text对象或textarea对象以及select对象不再拥有焦点、而退到后台时,引发该文件,他与onFocas事件是一个对应的关系。

载入文件onLoad

当文档载入时,产生该事件。onLoad一个作用就是在首次载入一个文档时检测cookie的值,并用一个变量为其赋值,使它可以被源代码使用。

卸载文件onUnload

Web页面退出时引发onUnload事件,并可更新Cookie的状态。实例

下例程序是一个自动装载和自动卸载的例子。即当装入HTML文档时调用loadform()函数,而退出该文档进入另一HTML文档时则首先调用unloadform()函数,确认后方可进入。 

<HTML>
	<HEAD>
		<script Language="JavaScript">
			<!--
			function loadform(){
				alert("这是一个自动装载例子!");
			}
			function unloadform(){
				alert("这是一个卸载例子!");
			}
			//-->
		</Script>
	</HEAD>
	<BODY OnLoad="loadform()" OnUnload="unloadform()">
		<a href="test.htm">调用</a>
	</BODY></HTML>


相关文章推荐

基于管道化和事件驱动模型的Web请求处理(一)

Author:放翁(文初) Date: 2010/11/23 Email:fangweng@taobao.com mblog: http://t.sina.com.cn/fangweng bl...
  • wanglha
  • wanglha
  • 2014年11月05日 08:59
  • 751

基于管道化和事件驱动模型的Web请求处理(二)

这篇文章将会从问题,技术背景,设计实现,代码范例这些角度去谈基于管道化和事件驱动模型的Web请求处理。建议从头看,能够从概念上更多的去理解和碰撞,其中的一些描述和例子也许不是很恰当,也希望得到更多的反...

Nginx 事件驱动模块连接处理

由于 Nginx 工作在 master-worker 多进程模式,若所有 worker 进程在同一时间监听同一个端口,当该端口有新的连接事件出现时,每个 worker 进程都会调用函数 ngx_eve...

json validator,流事处理,字符事件驱动,状态维护

语法字符驱动,状态判断、维护。参考leetcode isValidNum def isValidJson(json): stack, inWord, inKey, inQuote, empty, m...
  • binling
  • binling
  • 2015年10月26日 16:40
  • 212

nodejs笔记之:事件驱动,线程池,非阻塞,异常处理等

事件驱动:事件驱动的模型: 事件驱动的原理: 原理总结: Nodejs 会把所有请求和异步操作都放到一个事件队列中,用户的每一个请求就是一个事件。主线程先把普通代码执行完毕,然后会循...

谈事件驱动模型中的“超时”(Timeout)处理

写在最前面:本文是作者在开发爬虫程序时的一些体会,分享一下,希望能给读者朋友一点点帮助。 通常,在事件驱动模型的程序中,会有一个事件处理模块,我们称之为EventProcessor,还会有一个事件检...

基于管道化和事件驱动模型的Web请求处理(一)

Author:放翁(文初) Date: 2010/11/23 Email:fangweng@taobao.com mblog: http://t.sina.com.cn/fangweng bl...

Qt事件驱动处理机制

QT 源码之 Qt 事件机制原理是本文要介绍的内容,在用Qt写Gui程序的时候,在main函数里面最后依据都是app.exec();很多书上对这句的解释是,使 Qt 程序进入消息循环。下面我们就到ex...
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:事件驱动及事件处理
举报原因:
原因补充:

(最多只允许输入30个字)