DOM元素绑定事件的参数说明

一、当绑定在DOM元素上的事件处理写在标签中时,有两个已知常量,其名称被占用,分别是:
event:表示事件对象, this:表示元素本身
注意:若调用的脚本方法需要用到这两个对象,必须作为参数传递进来

<img id="id_img" src="luguo.jpg" οnclick="get_xy(event)">
function get_xy(e){ alert("鼠标坐标:"+e.screenX+","+e.screenY);}
// HTML标记属性方式(必须显式传递实参event)

<img id="id_img" src="luguo.jpg" οnclick="alert('鼠标坐标:'+event.screenX
+','+event.screenY);"> // HTML标记内嵌Javascript语句(直接引用event事件对象)

二、当绑定在DOM元素上的事件处理未写在标签中时,而是纯粹通过脚本绑定,那么:
<img id="id_img" src="luguo.jpg">
id_img.οnclick=get_xy; // 元素对象方式(默认隐式传递event对象)
function get_xy(e){ alert("鼠标坐标:"+e.screenX+","+e.screenY);}

脚本方法第1个形参:自动表示事件对象, this:自动表示元素本身
注意:脚本方法的第1个形参名称无论是写event,还是x,或者a,都表示为Event事件对象,
若没有写形参名称,还可通过arguments[0]来获取该Event事件对象。

三、在上述第一种情况下,脚本方法的形参都有个特殊情形:
<img id="id_img" src="luguo.jpg" οnclick="get_xy()"> // 仅IE方式下可用,不推荐
function get_xy(){ // 注意:HTML调用中未传参时,脚本中不能有event形参,但代码内部使用了event参数
alert("鼠标坐标:"+event.screenX+","+event.screenY);
}
若调用脚本方法时并没有传入event的实参,但方法实现内部却引用了event变量,那它在IE下可表示window对象的属性,firefox不认识该变量,而chrome仍会当作Event对象。(若在方法实现中形参用了event名称,那该名称就只能被当作普通形参用,即使在IE下也不会被识别为window的属性)

转载于:https://blog.51cto.com/maplebb/2295752

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值