javascript事件处理程序

js事件处理程序有四种方式:

1.html事件处理:如

<input type="botton" id="1" οnclick="alert('33')"/>

 
 这种方式把js代码写在html里面 

也可以js封装处理如:

<input type="botton" id="1" οnclick="showmessage()"/>
<script>
function showmessage()
{
alert("33");
}
</script>

2.DOM0级事件处理程序

先取出元素对象,然后给予事件属性添加,如:

<input type="botton" id="1"/>
<script>
var thing=document.getElementById('1');//取出按钮对象
thing.οnclick=function()//赋予onclick属性
{//函数
}
//删除用thing.οnclick=NULL;
3.DOM2级事件处理程序

2级事件处理程序提供了两个函数:addEventlistener()和removeEventlistener();

他们都接受3个参数,处理的事件名,处理时间的函数,布尔值(捕获阶段用true,冒泡阶段用false,一般用用false);

如:

<input type="botton" id="1"/>
<script>
var thing=document.getElementById('1');//取出按钮对象
thing.addEventlistener('click',showmessage,false)//添加事件处理程序 在第一个参数事件名要注意所有的事件名都不加‘on’;比如onclick和onmouseover都不对
function showmessage()
{
alert("33");
}
{//函数
}
</script>
//删除事件用removeEventlistener('click',showmessage,false);
而且三个参数和addEventlistener的三个参数完全相同。

this指此时引用的对象。

比如:

var thing=document.getElementById('1');//取出按钮对<pre name="code" class="javascript">thing.addEventlistener('click',function(){alert(this.value);},false)//这里this指引用的元素对象thing。事件是在哪个元素上触发的this就指哪个元素

 

 

4.ie事件处理程序:(ie和opera支持)

ie上添加事件处理程序也有两个函数:

attachEvent()和detachEvent()

接收两个参数,处理的事件名和处理时间的函数。不用布尔值因为ie8只支持事件冒泡(默认)

如:

。。。

thing.addEventlistener('onclick',showmessage);//注意要加‘on’
。。。


附:跨浏览器检测支持哪种处理方式:

可以把处理程序封装在一个对象中,如下:

var eventUtil={

                  //添加句柄

                 addHandler:function(element,type,handler){

                            if(element.addEventListener){

                                       element.addEventListener(type,handler,false);

                            }else if(element.attachEvent){

                                     element.attachEvent('on'+type,handler);

                             }else{

                                     element['on'+type]=handler;

                             }                           

                         },

                   //删除句柄

                   removeHandler:

                                   ''''

}

检测的时候这样传参:

eventUtil.addhandler(btn3,'click',function(){});


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

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值