时间:2021-05-18
最近用到JavaScript事件处理机制,找了些资料。
以前写JavaScript程序时,事件都是采用
复制代码 代码如下:
object.event=handler;
的方式初始化。这种方式对于InternetExplorer、Mozilla/Firefox和Opera来说很通用。但是有一个问题就是,这种方式只能一个事件对应一个事件处理过程。如果希望一个事件可以依次执行多个处理过程就不好用了。
但是InternetExplorer从5.0开始提供了一个attachEvent方法,使用这个方法,就可以给一个事件指派多个处理过程了。attachEvent对于目前的Opera也适用。但是问题是Mozilla/Firefox并不支持这个方法。但是它支持另一个addEventListener方法,这个方法跟attachEvent差不多,也是用来给一个事件指派多个处理过程的。但是它们指派的事件有些区别,在attachEvent方法中,事件是以“on”开头的,而在addEventListener中,事件没有开头的“on”,另外addEventListener还有第三个参数,一般这个参数指定为false就可以了。
因此要想在你的程序中给一个事件指派多个处理过程的话,只要首先判断一下浏览器,然后根据不同的浏览器,选择使用attachEvent还是addEventListener就可以了。实例如下:
复制代码 代码如下:
if(document.all){
window.attachEvent('onload',handler1);
window.attachEvent('onload',handler2);
}
else{
window.addEventListener('load',handler1,false);
window.addEventListener('load',handler2,false);
}
注意:attachEvent所指派的多个过程的执行顺序是随机的,所以这几个过程之间不要有顺序依赖。另外attachEvent和addEventListener不仅仅适用于window对象,其他的一些对象也支持该方法。
复制代码 代码如下:
functionaddEvent(obj,evenTypeName,fn){
if(obj.addEventListener){
obj.addEventListener(evenTypeName,fn,true);
returntrue;
}elseif(obj.attachEvent){
returnobj.attachEvent("on"+evenTypeName,fn);
}else{
returnfalse;
}
}
声明:本页内容来源网络,仅供用户参考;我单位不保证亦不表示资料全面及准确无误,也不保证亦不表示这些资料为最新信息,如因任何原因,本网内容或者用户因倚赖本网内容造成任何损失或损害,我单位将不会负任何法律责任。如涉及版权问题,请提交至online#300.cn邮箱联系删除。
在此之前我们给大家整理过用javaScript和jQuery自动加载的几种方法,大家可以参考一下:javaScript页面自动加载事件详解一、JavaScrip
通常同步意味着一个任务的某个处理过程会对多个线程在用串行化处理,而异步则意味着某个处理过程可以允许多个线程同时处理。下面我们就来看看有关异步处理的详细内容。异步
本文实例讲述了JavaScript实现为指定对象添加多个事件处理程序的方法。分享给大家供大家参考。具体如下:如果你希望对象点击的时候同时处理多个事情,可以使用下
第四代语言是非过程化的程序设计语言,是针对以处理过程为中心的第三代语言提出的,希望通过某些标准处理过程的自动生成,使用户只说明要做什么,而把具体的执行步骤的安排
在JavaScript的世界中,所有代码都是单线程执行的。由于这个“缺陷”,导致JavaScript的所有网络操作,浏览器事件,都必须是异步执行。异步执行可以用