JS--addEventListener()

刚刚在做百度笔试题的时候发现有关于addEventListener这个方法,所以现在想了解多一点~~

去菜鸟驿站和其他的网站下学习了一下关于:addEventListener()方法--用于向指定的元素添加事件句柄。

它是为元素添加点击事件的,当用户点击元素的时候,会触发事件的发生。

例如,我们在这里给出一段代码:

docuemnt.getElementById("myBtn').addEventListener("click",function(){

document.getElementById("demo").innerHTML="Hello World";

});

**关于浏览器的支持,IE8以及更早的IE版本是不支持addEventListener()方法的,Opera 7.0及Opera等更早的版本也是不支持的。

**语法

element.addEventListener(event,function,useCapture)  、

event :指的是事件名,必须的,而且是字符串。

function: 也是必须的,指定事件出发时执行的函数。当事件对象会作为第一个参数传入函数,事件对象的类型取决于特定的事件。例如"click"是属于MouseEvent(鼠标事件)对象。

useCapture:可选的值,布尔值,指定事件是否在捕获或者冒泡阶段执行。true-事件句柄在捕获阶段执行。false-默认值,事件句柄在冒泡阶段执行。


【1】我们可以通过函数名来引用外部的函数。

document.getElementById("myBtn").addEventListener("click",myFunction);

【2】我们可以在文档中添加很多事件,添加的事件是不会覆盖已存在的事件的。

document.getElementById("myBtn").addEventListener("click",myFunction);

document.getElementById("myBtn").addEventListener("click",someOtherFunction);

【3】还可以在同一个元素添加不同的类型的事件

document.getElementById("myBtn").addEventListener("mouseover',myFunction);

docuement.getElementById("myBtn").addEventListener("click",someOtherFunction);

【4】当传递参数值时,使用匿名函数调用带参数的函数

document.getElementById("myBtn").addEventListener("click',function(){

myFunction(p1,p2);

});

【5】使用可选参数useCapture来演示冒泡和捕获阶段的不同:

document.getElementById("myDiv").addEventListener("click',myFunction,true);//这个是从捕获的阶段来执行

**我们这里先谈谈捕获阶段和冒泡阶段的区别

捕获阶段这要是从最不精确的对象开始触发,直到最精确的对象。

冒泡阶段是从最精确的对象开始触发,直到最不精确的。

我们形象地说出其实就是:捕捉就是从window-document-html-body-div-ul-li-a; 而冒泡的顺序正好和捕捉相反: a-li-ul-div-body-html-document-window。


之前提到过IE8以及更早的版本是不支持addEventListener()事件的,所以我们这里有另一个方法来适应跨浏览器

attachEvent()方法来替代。

var x=document.getElementById("myBtn");

if(x.addEventListener){

x.addEventListener("click",myFunction);

}

else if(x.attachEvent){

x.attachEvent("onclick","myFunction");

}





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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值