onclick与addEventListener的区别

onclick与addEventListener实际上可分为:Inline eventsEvent Listeners

 

 

Event Listeners (addEventListener and IE‘s attachEvent)

相同点:都是时间监听器。

不同点如下:

1.使用浏览器的差别

addEventListener:

很多浏览器支持addEventListener(IE9及以上也支持),使用方式如下:

var target = document.getElementById("test");
target.addEventListener(‘click‘,test,false);
function test(){
        alert("test");
}

attachEvent:

IE中提供了类似addEventListener的事件监听器:attachEvent。在IE众多版本都支持,本人已测试过IE6-10。

使用方式如下:

var target = document.getElementById("test");
target.attachEvent(‘onclick‘,test);
function test(){
     alert("test");
}

2.参数差别

addEventListener和attachEvent除了使用浏览器的差别,还有参数的差别。addEventListener中有第3个参数,attachEvent没有。第3个参数传递的是false或true。这个参数可选,默认是false。

false--表示事件处理将在冒泡阶段执行。

true--表示事件处理将在捕获阶段执行。

理论上,Event Listeners (addEventListener and IE‘s attachEvent)可以无限增加事件监听给某个一元素。实际应用的约束就是客户端内存的限制,这一点因每个浏览器而异。

Inline events (HTML onclick="" property and element.onclick)

使用方式:

1.

<a id="testing" href="#" onclick="alert(‘did stuff inline‘);">点我</a>

2.

<a id="test" href="#">点我</a>

var element = document.getElementById(‘test‘);
element.onclick = function () { alert(‘did stuff #1‘); };

Inline eventsEvent Listeners的区别:Event Listeners可以添加无数个(理论上)事件,Inline events只能添加1个事件,且下面的会覆盖上面的。例如:

 

<a id="test" href="#">点我</a>

var element = document.getElementById(‘test‘);
element.onclick = function () { alert(‘did stuff #1‘); };

element.onclick = function () { alert(‘did stuff #2‘); };

结果是:did stuff #2

总结起来,建议使用下面形式:

function addEvent(element, evnt, funct){
        if (element.attachEvent)
            return element.attachEvent(‘on‘+evnt, funct);
        else
            return element.addEventListener(evnt, funct, false);
    }

addEvent(
            document.getElementById(‘myElement‘),
            ‘click‘,
            function () { alert(‘hi!‘); }
    );

时间: 2024-10-01 12:46:56

onclick与addEventListener的区别的相关文章

js onclick与addEventListener 区别及用法

addEventListener(建议使用)好比一个监听容器,这个容器里面可以装很多个监听事件,而且每一个事件都会执行. onclick 在今天之前我使用这个(onclick)比较多(单纯的是因为看到的基本都是用这个,有个缺点就是同一个元素绑定两个不同的事件前一个事件会被后一个事件覆盖. 今天在公司问了一下这两个的区别,印象很深刻,自己也验证了一下,我这里上一段我的验证代码(代码里面的'222'会被覆盖不弹出),大家也可以试一下: <!DOCTYPE html><html>    

关于onclick和addeventlistener(&#39;click&#39;),click的整理

代码 $(function(){ $("#btn").click(function(){ console.log(2) }) $("#btn").click(function(){ console.log(1) }) $("#btn").click(function(){ console.log(3) })})这个点击结果是输出2,1,3因为你此处相当于绑定了click,在你没解绑之前,他依然具有第一个事件的,所以他会继续之前一个:原生 docu

attachEvent与addEventListener的区别 真实例子

近日遇到attachEvent与addEventListener两个事件,哟,果断研究一下~~ 先普及一下基本知识: attachEvent与addEventListener的作用:为某一事件附加其它的处理事件. 网上普遍都是说attachEvent用于非Mozilla系列,addEventListener用于Mozilla系列. (Mozilla系列在浏览器而言,即指火狐浏览器,本人认为也可以指支持w3c标准的系列浏览器) 理论上是这么说,还是得自己动手试一试! 结合查阅资料写了以下代码进行测

【转载】onclick与onCommand的区别

这两个事件没有本质区别,都是点击执行一个事件.不同在于传递的参数不一 样,OnClick (object sender, EventArgs e),OnCommand (object sender, CommandEventArgs e),然后事件中取值方式稍有不同. 用OnCommand还有个好处是可以为多个Button指定同一方法,然后根据不同的CommanName区分哪个Button被触发.当一个Button同时有两个方法时,他们都会执行,顺序为先执行Click,后执行Command <a

js 添加事件 attachEvent 和 addEventListener 的区别

1.addEventListener 适用w3c标准方法addEventListener绑定事件,如下,事件的执行顺序和绑定顺序一致,执行顺序为method1->method2->method3 //element.addEventListener(type,listener,useCapture); btn1Obj.addEventListener("click",method1,false); btn1Obj.addEventListener("click&q

addEventListener和attachEvent以及element.onclick的区别

attachEvent是ie添加事件处理程序,接收两个参数,其中事件类型名称要加"on", 可以添加多个事件处理程序,按照添加顺序相反的顺序触发; addEventListener是给非ie添加事件处理程序,接收三个参数,第一个是事件名,不需要加“on”, 第二个是绑定的函数,第三个参数是一个布尔值,是事件的方式,意思是是否使用useCatch方式, 如果是false,就使用传统的冒泡方式,如果为true,就在捕获阶段调用事件处理程序. addEventListener可以添加多个事件

javascript中 addEventListener和attachEvent以及element.onclick的区别

attachEvent是ie添加事件处理程序,接收两个参数,其中事件类型名称要加"on", 可以添加多个事件处理程序,按照添加顺序相反的顺序触发; addEventListener是给非ie添加事件处理程序,接收三个参数,第一个是事件名,不需要加"on", 第二个是绑定的函数,第三个参数是一个布尔值,是事件的方式,意思是是否使用useCatch方式, 如果是false,就使用传统的冒泡方式,如果为true,就在捕获阶段调用事件处理程序. addEventListen

addEventListener和attachEvent的区别

addEventListener共有3个参数,如下所示:element.addEventListener(type,listener,useCapture); 参数 参数说明 element 要绑定事件的对象,及HTML节点. type 事件名称,注意去掉事件前边的“on”,比如“onclick”要写成“click”,“onmouseover”要写成“mouseover”. listener 要绑定的事件监听函数,注意只写函数名,不要带括号. userCapture 事件监听方式,只能是true

a标签的href与onclick中使用js的区别 《转》

href与onclick中javascript的区别一般没用到都没注意,但出错时才有些郁闷,看文本章解释如下: 以前一直很随意,后来看.net里的linkbutton似乎是用在<a href="javascript:fun();"...>的形式,今天用这种方式就遇到一些问题,摘网友的文章和我的结论放在下面: 链接的 onclick 事件被先执行,其次是 href 属性下的动作(页面跳转,或 javascript 伪链接): 假设链接中同时存在 href 与 onclick,