事件对象介绍

Javascript事件最重要的一个方面是,它们具有一些相对一致的特性,可以为开发提供强大的功能;

最方便和功能强大的是事件对象,它可以帮助您处理鼠标事件和键盘敲击的情况。

此外,一般事件的捕获/气泡流的功能可以被修改。

一个事件对象




标准功能事件处理程序以某种方式访问事件对象,其中包含有关当前事件的上下文信息;
事件处理包含三个部分:事件处理程序函数=对象;
onclick =函数(){
警报('lee);
}
解释:单击:上述过程代表一个事件类型,单击;
一 / /框的属性,事件处理程序或绑定对象(或听众);
文件:表示绑定的对象,用于触发元素区域;
(函数):匿名函数是在执行之后执行的函数,用于触发;

除了使用匿名函数作为执行的函数之外,该函数还可以独立设置;
onclick =箱; / /直接赋值函数的名字,没有括号;
函数框(){
警报('lee);
}

此关键字和上下文
在面向对象的那一章中,我们学习到:在一个对象中,因为这个范围表示最接近的对象;
无功输入= document.getelementsbytagname(输入的){ 0 };
input.onclick =函数(){
警报(这个值); / / htmlinputelement,这表示输入对象;
}



当触发事件发生时,该对象将包含与事件相关的所有信息;
哪些事件元素事件/类型和与特定事件相关联的其他信息;
事件对象,通常称为事件对象,对象是对象浏览器,通过函数作为传递参数;
首先,我们必须检查,在传输参数的实现中没有功能,是否能得到隐藏参数;
函数(方框)普通空气参数函数;
警报(参数长度);0;没有传输参数;
}
(input.onclick =功能){ / /活动执行功能;
警报(参数长度); 1;隐藏参数;
}
通过以上两组函数,我们发现,通过执行事件的函数,将得到一个隐藏参数;
浏览器将自动分配一个参数,这个参数是事件对象;
input.onclick =函数(){
警报(参数{ 0 }); / /事件,鼠标事件的对象;
}

上面的操作是麻烦的,所以通过参数直接接收是比较容易的;
input.onclick =功能(EVT){ / /事件对象,
警报(EVT); / /事件,鼠标事件的对象;
}

/ /直接接收事件对象是W3C,IE不支持IE,你定义一个事件对象,你可以直接访问window.event;
input.onclick =功能(EVT){
var = EVT window.event | |;
警报(e);实现跨浏览器兼容的事件访问对象;
}




您可以通过事件/信息和鼠标按钮、屏幕坐标等获得该对象;

两个鼠标事件

鼠标是一种事件/事件网页上面最常用的鼠标,毕竟是主要的定位设备;

1。鼠标按钮


只有当主鼠标按键被点击时(通常是鼠标左键)才会触发单击事件,因此不需要检测信息按钮;
/ /但MouseDown和mouseup事件,有一个按钮的事件对象的属性,表示按下或释放按钮;
非IE中的按钮属性(W3C)
值描述
0是鼠标的主按钮(通常是鼠标左键)。
1鼠标按钮中间(鼠标滚轮按钮);
2鼠标按钮(通常是鼠标右键);
伊江中的按钮属性
1是鼠标的主按钮(通常是鼠标左键)。
2鼠标按钮(通常是鼠标右键);
4意味着鼠标按钮被压在中间;
兼容鼠标按钮;
功能getbutton(EVT){
var = EVT window.event | |;
如果(EVT){ / / Chrome浏览器和IE支持W3C标准;
返回e.button; / /注意判断顺序;
否则如果(窗口事件){
开关(e.button){
案例1:
返回0;
案例4:
返回1;
案例2:
返回2;
}
}
}
document.onmouseup =功能(EVT){
如果(getbutton(EVT)= = 0){
警报('press鼠标左键!);
} else if(getbutton(EVT)= = 1){
警报('press中央键);
} else if(getbutton(EVT)= = 2){
警报('press右键);
}
}


2。可视区域和屏幕坐标


事件对象具有两个属性来获取浏览器的坐标:
一组坐标是页/页观察区域;
一组是屏幕坐标;
协调性
属性描述
ClientX可视面积x坐标,从左边界的距离;
clienty视觉区域的y坐标,从边界的距离;
用ScreenX屏幕面积x坐标,从左屏幕的距离;
Screeny屏幕面积Y坐标,从屏幕的距离;
X坐标在pagex页面距离从整个页面的左边界;
Y坐标在pagey页面距离从整个页面边界;

判断/鼠标点击位置函数;
onclick =功能(EVT){
var = EVT window.event | |;
警报(e.clientx +,+ e.clienty);
警报(e.screenx +,+ e.screeny);
警报(e.pagex +,+ e.pagey);
}
没有 / / PS:滚动页面,和ClientX价值和clienty值等于pagex和pagey;
以下 / / IE8不支持页面坐标的事件对象,但使用客户坐标和滚动信息可以计算;
在这个时间/需要使用document.body(混合模式)或document.documentelement(标准模式)scrollTop和scrollLeft属性;
/ / pagex和pagey兼容功能;
var div = document.getelementbyid('mydiv);
addEventListener(DIV,点击功能(EVT){)
VaR EVT =事件window.event | |;
无功pagex = evt.pagex,
pagey = evt.pagey;
如果(pagex = undefined){
pagex = EVT。ClientX +(docuemnt.body.scrollleft | |文档。文档元素}。scrollLeft);
}
如果(pagey = undefined){
pagey = EVT。clienty +(document.body.scrolltop | |文档。文档元素}。srolltop);
}
警报(pagex + pagey);
});


三.辅助按键


有时我们需要用键盘上的一些键,用鼠标来触发一些特殊的事件;
关键是:移动(Windows和Windows键,苹果是CMD键);
它们通常用于修改鼠标事件和行为,也就是所谓的修饰键;
修改的关键特性
属性描述
大写键确定键按下。
ctrlkey决定ctrlkey键被按下。
altkey确定是否按下了ALT。
元键决定Windows键被按下,和IE不支持。

确定键函数;
功能getKey(EVT){
var = EVT window.event | |;
var键= };
如果(e.shiftkey)keys.push(移动'); / /确定,按住Shift键;
如果(e.ctrlkey)keys.push(Ctrl);
如果(e.altkey)keys.push('alt);
返回键;
}
onclick =功能(EVT){
警报(getKey(EVT) / /获得);数组可以包含移位 / / CTRL ALT值;
}


三键盘事件

用户在使用键盘时可以触发键盘事件。

DOM2级事件最初定义的键盘事件和随后删除相应的内容。

最后,第一次使用了键盘事件,但IE9已经在支持DOM3键盘事件的领导者。

1。关键代码


在一个keydown / /和KeyUp事件的事件,事件对象的键码属性将包含一个对应于一个特定的键码;
数字/字母的字符集,keyCode属性值作为相应的小写字母或数字的ASCII码的编码相同;大小不影响写信;
document.onkeydown =功能(EVT){
警报(EVT。密码);
}


2。字符编码


Firefox和Chrome或Safari / /活动对象支持的字符码性能;
此属性只会发生 / / KeyPress事件包含一个值,该值是级编码按键上的字符代表;(同时还包含数字和字母键);
此时 / /密钥通常等于0或等于关键编码;
IE和歌剧/ ASCII码存储在密钥的字符编码;
功能getcharcode(EVT){
var = EVT window.event | |;
如果(typeof e.charcode = =数){
返回e.charcode;
其他{ }
妻子回来;
}
}
document.onkeypress =功能(EVT){
警报(getcharcode(EVT));
}
你可以使用string.fromcharcode / / PS:(ASCII码)编码的字符将被转换为真正的;


四W3C和IE

在标准DOM事件中,事件对象包含与创建其相关的特定事件相关的属性和方法;

触发器事件不是同一类型,可用的属性和方法不一样;

W3C中事件对象的属性和方法

属性方法类型读/写指令

布尔值的气泡指示事件是否冒泡;

撤销布尔只读显示事件的默认行为可以取消;

currentTarget元只读取它的事件处理程序正在处理的事件的元素;

细节整数只读取与事件相关的细节;(一般用于滚动信息的值);

eventphase整数只调用事件处理阶段:1代表捕获阶段,2表示处理的目标,和3显示冒泡阶段。

PreventDefault()函数读取的取消事件的默认行为;如果撤销的价值是真实的,可以用这种方法;

里面()函数只读取取消事件进一步,如果泡沫的价值是真实的,可以用这种方法。

目标元素只读事件目标;

类型字符串只读取触发的事件类型;

查看abstractview读摘要的观点与事件相关的;它相当于一个事件发生的窗口对象;

伊江事件对象的性质

属性类型读/写指令

cancelbubble布尔读取和写入默认值为假,但设置为true,可以取消事件冒泡;

返回布尔值的读取和写入默认值是真实的,但将它的值设置为false可以取消事件的默认行为;

srcelement元只读事件目标;

类型字符串只读取触发的事件类型;


/ /兼容的目标和srcelement功能
功能gettarget(EVT){
var = EVT window.event | |;
返回e.target e.srcelement | |; / /获得兼容的事件对象的DOM对象;
}
onclick =功能(EVT){
VaR目标= gettarget(EVT);
警戒(目标);
}


五事件流



事件流是从页面描述事件的序列,当事件的多个元素堆叠在一起时,单击其中一个元素;

当前单击的元素不仅触发事件,而且堆叠在单击范围上的所有元素触发事件;

事件流包含两种模式:冒泡和捕获;

1。事件冒泡

它是从里面一个一个触发的;

2。事件捕获

它是由外界一个一个触发的;


现代浏览器都是冒泡类型;默认情况下,早期模式是早期的Netscape;
/ /流事件绑定机制来手动定义事件现在浏览器使用DOM2模型;
onclick =函数(){
警报(我是文档;
}
document.documentelement.onclick =函数(){
警报(我是HTML);
}
document.body.onclick =函数(){
警惕(我是身体);
}
document.getelementbyid('box)。Onclick =函数(){
警报(我是div);
}
document.getelementsbytagname(输入的){ 0 }。onclick =函数(){
警报(输入);
}
在输入 / / PS点击:将逐步冒泡到文件;



停止事件兼容功能
功能stoppro(EVT){
var = EVT window.event | |;
如果有 / / cancelbubble,IE浏览器,真正的价值可以停止活动;
它是W3C / /实施停止事件(里面的方法);
e.cancelbubble =真e.stoppropagation window.event:();
}