zoukankan      html  css  js  c++  java
  • HTML DOM的EventListener

    1、addEventListener()方法

      用于向指定元素添加事件句柄。

      addEventListener()方法添加的事件句柄不会覆盖已存在的事件句柄。

      可以向任何DOM对象添加事件监听,向一个元素添加多个事件句柄,或向同个元素添加多个同类的事件句柄,如两个'click'事件。

      addEventListener() 方法可以更简单的控制事件(冒泡与捕获)。

    语法:

    element.addEventListener(event, function, useCapture);

    第一个参数是事件类型(如'click')。

    第二个参数是事件触发后调用的函数。

    第三个是个布尔值用于描述事件是冒泡还是捕获。该参数是可选的,默认值为 false, 即冒泡传递,当值为 true 时, 事件使用捕获传递。

    例:

    document.getElementById('id').addEventListener('click', function(){
        alert('Hello World!');
    });

    (1)同一元素多个同类型事件

    var x = document.getElementById('id');
    x.addEventListener('click', myFunction);
    x.addEventListener('click', someOtherFunction);
    function myFunction() {
        alert ('Hello World!')
    }
    function someOtherFunction() {
        alert ('函数已执行!')
    }

    (2)同一元素多个不同事件

    var x = document.getElementById('id');
    x.addEventListener('mouseover', myFunction);
    x.addEventListener('mouseout', mySecondFunction);
    function myFunction() {
        document.getElementById('demo').innerHTML += 'Moused over!<br>'
    }
    function mySecondFunction() {
        document.getElementById('demo').innerHTML += 'Clicked!<br>'
    }

    (3)当传递参数值时,使用'匿名函数'调用带参数的函数

    document.getElementById('id').addEventListener('click', function() {
        myFunction(p1, p2);
    });
    function myFunction(a, b) {
        var result = a * b;
        document.getElementById('demo').innerHTML = result;
    }

    2、removeEventListener()方法

      该方法移除由addEventListener()方法添加的事件句柄。

    语法:

    element.removeEventListener(event, myFunction);

    注:

    (1)addEventListener()与removeEventListener()方法兼容低版本浏览器可用attachEvent()与detachEvent()。

    (2)useCapture:用于描述事件是冒泡还是捕获。

      事件捕获:事件从最上一级标签开始往下查找,直到捕获到事件目标(target)。

      事件冒泡:事件从事件目标(target)开始,往上冒泡直到页面的最上一级标签。

    例:

    <div>
        <P onclick='function()'></P>
    </div>

    上例中:事件捕获时,父级元素先触发,子级元素后触发,即div先触发,p后触发。事件冒泡时,子级元素先触发,父级元素后触发,即p先触发,div后触发。

  • 相关阅读:
    js规范
    JS多个函数多个参数如何动态调用,apply的灵活应用
    我是插件狂人,jDuang,jValidator,jModal,jGallery
    Button在IE6、7下的自适应宽度问题解决方法
    100个直接可以拿来用的JavaScript实用功能代码片段
    docker
    jsonp实现post跨域请求
    setInterval倒计时10s
    CI框架源码解读(1)-入口文件index.php
    为什么开始源码阅读
  • 原文地址:https://www.cnblogs.com/cornlin/p/7565649.html
Copyright © 2011-2022 走看看