javascript中事件event详解

脚本中的事件有2种模型

1、  冒泡型事件:事件是按照从最特定的目标到最不特定的事件目标(document)的顺序依次触发。这是针对不同元素的同一事件类型

如:

<html  οnclick=”handleClick()”>

<head></head>

<body οnclick=”handleClick()”>

  <div  οnclick=”handleClick()”>

</body>

</html>

click事件的触发顺序为div——>body——>document

微软的IE就采用的是冒泡事件模型

2、  捕获型事件:和冒泡事件相反,事件是按照从最不特定的目标(document)到最特定的目标的顺序依次触发。这是针对不同元素的同一事件类型

 如上面的示例,handleClick事件的触发顺序为document——>body——>div

标准的DOM采用两种事件模型,既有捕获型事件,又有冒泡型事件,用户可以根据需求选择相应的事件模型

事件处理函数的绑定/卸载:

1、  针对IE

[object].attachEvent(“name_of_event_handler”,fnhandler);

[object].detachEvent(“name_of_event_handler”,fnhandler);

如:

var  dom=document.getElementById(“div1”);

dom.attachEvent(“onclick”,handlerClick)

注意:一定要在事件类型前加on

2、  针对兼容DOM的浏览器

[object].addEventListener(“name_of_event”,fnhandler,bCapture);

[object].removeEventListener(“name_of_event”,fnhandler,bCapture);

注意,第三个参数bCapture标示选择的事件模型,为true,选择捕获型事件模型,为false,选择冒泡型事件模型

如:

var dom =document.getElementById(“div1”);

dom.addEventListener(“click”,handleClick);

阻止事件的传递:

1、  阻止事件的默认行为

事件的默认行为是指一些元素自身绑定的事件处理函数,像鼠标右键事件,文本框的输入事件等。

如果要阻止鼠标的右键事件,可以采用

l         IE

window.event.returnValue=false;

l         DOM兼容的浏览器

oEvent.preventDefault();  //oEventDOM中就是事件对象

两者兼容的方法

 

document.body.οncοntextmenu=function(oEvent)

{

  If(isIE)

{

 oEvent=window.event;  //IE中获取事件对象的方法

 oEvent.returnValue=false;

}

Else

oEvent.preventDefault();

}

2、  阻止事件的冒泡

   阻止特定事件的冒泡,就可以阻止本事件的处理函数的执行

l         IE

必须将本事件的cancleBubble属性设置为true

oEvent.cancleBubble=true;

l         DOM兼容的浏览器

oEvent.stopPropagation();

事件对象的获取方式

1、  IE中,事件是window对象的一个属性,且事件只能在事件发生时才能进行访问,所以,事件的访问位置也就限制在了事件处理函数之中。

oDiv.οnclick=function()

{

  var oEvent=window.event;

}

2、  DOM标准中,事件对象独立任何其他对象,并且事件对象可以作为唯一的一个参数放在事件处理函数中。

 如:

   oDiv.οnclick=functionevent

   {

}

或者:

oDiv.οnclick=function()

{

  var  oEvent=arguments[0];

}

 总之:要访问事件对象的属性,就必须获取该事件,以上就是获取事件对象的方法。

 

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值