addEventListener('click',fnName,false) 兼容性问题

来源:2-3 DOM2级事件处理程序

月风

2016-08-23 11:34

addEventListener('click',fnName,false);  老师你不是说这个函数的第三个参数为false代表是将时间处理程序添加到冒泡阶段,兼容各种浏览器么???却不支持IE?

写回答 关注

2回答

  • 桐谷还灬和人
    2016-08-23 12:24:34
    已采纳

    不不不,你认知错了……addEventListener('click',fnName,false)是用的Dom2级事件,他只能支持各种浏览器(不包括IE全系列。)并不支持IE和node?系列。往后看就知道了,IE有IE专门处理各种属性的方法。需要方法判断下,才能全兼容的。可以看下视频2-4,答案就在里面

    月风

    哈哈 我的问题超前了

    2016-10-13 08:09:26

    共 1 条回复 >

  • 柠檬叶子
    2016-08-23 15:13:23

    事件流分为事件冒泡流和事件捕获流。其中事件捕获流是由natScape浏览器独自开发的一种事件流结构,后来也被火狐、chrome、IE9及以上等主流浏览器支持。而支持事件冒泡流结构的浏览器则涵盖了当下基本所有的浏览器,包括IE8及以前版本。

    给某个Dom对象(比如某个按钮等)添加事件处理程序的方法主要分为三种:HTML事件处理程序、Dom0级事件处理程序和Dom2级处理程序。各个版本的浏览器对这三种写法的支持程度是不同的。其中Dom0级事件处理程序被支持度最为广泛,涵盖了IE系列浏览器。

    这三种方法的主要写法和示例如下(以点击事件为例):

    1. HTML事件处理程序

      首先body中的Dom对象中直接添加onclick方法

      <input type="button" id="btn1" onclick="showMessage()">

      然后再js文件或者js代码段内添加事件处理程序定义

      function showMessage(){

          alert("hello world");

      }

    2. Dom0级事件处理程序

      假设要给btn2按钮添加点击事件处理程序

      <input type="button" id="btn2">

      在js代码区添加事件处理程序和绑定关系

      var btn2 = document.getElementById("btn2");

      btn2.onclick = function showMessage(){

          alert("hello world");

      }

      如果要移除该点击事件处理程序

      btn2.onclick = null;

    3. Dom2级事件处理程序

      body中的按钮对象为btn3

      <input type="button" id="btn3">

      js区添加事件处理程序和绑定关系

      function showMessage(){

          alert("hello world");

      }

      (1)在IE8及以下中的写法, IE9、IE10也支持,IE11不再支持

      var btn3 = document.getElementById("btn3");

      btn3.attachEvent("onclick", showMessage);

      btn3.detachEvent("onclick", showMessage);

      (2)在Chrome浏览器中的写法,IE9及以上版本也支持

            btn3.addEventListener("click", showMessage, false);

            btn3.removeEventListener("click", showMessage, false);

            注意这里的第一个参数和IE8浏览器第一参数的区别,方式1中为“onclick”, 方式2中为“click”。方式2中需要将我们平常习惯的事件处理方法名前面的 'on'去掉。

            方式2中的第三个参数,true标示事件捕获流,false标示事件冒泡流。

    天天_

    谢谢柠檬叶子,我在你这里找到拉答案!

    2016-09-07 15:47:00

    共 1 条回复 >

DOM事件探秘

DOM事件?本课程会通过实例来给小伙伴们讲解如何使用这些事件

99545 学习 · 1197 问题

查看课程

相似问题