美文网首页
JS事件委托

JS事件委托

作者: 哪树繁花 | 来源:发表于2017-09-19 22:51 被阅读20次

事件委托从字面意思上理解就是把事件委托给别人做。这样有什么好处呢?设想一下,一个ul里有很多li,现在要给每一个li都添加点击事件,就需要循环给li添加事件,这样性能会很差。这时候就可以使用事件委托解决。先了解下他的原理:利用事件冒泡,把子元素的事件添加到父元素上,触发事件执行。
需要注意的地方在下面的demo里都注释出来了。

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <title>Document</title>
</head>
<body>
    <ul id="list">
        <li>点我</li>
        <p>点我没用</p>
        <li>点我</li>
        <p>点我也没用</p>
        <li>点我</li>
    </ul>
    <script>
        var oUl = document.getElementById("list");
        oUl.onclick = function(event){
            event = event || window.event;
            //获取事件源(需要考虑兼容,前者标准浏览器,后者IE)
            var target = event.target || event.srcElement;
            console.log(target.nodeName);
            //这里注意获取到的nodeName的值全为大写
            if (target.nodeName == "LI") {
                alert("hello");
            }
        };
        //使用事件委托写鼠标移入移出事件时不能使用onmouseenter和onmouseleave,
        //因为他俩不支持事件冒泡
        oUl.onmouseover = function(event){
            event = event || window.event;
            var target = event.target || event.srcElement;
            if (target.nodeName == "P") {
                target.style.background = "green";
            }
        };
        oUl.onmouseout = function(event){
            event = event || window.event;
            var target = event.target || event.srcElement;
            if (target.nodeName == "P") {
                target.style.background = "";
            }
        };
    </script>
</body>
</html>

相关文章

  • web前端面试题@六(事件委托)

    *说到事件委托,我们首先先要知道什么是事件委托—— · 那么什么是事件委托呢??? JS里的事件委托就是当事件...

  • JS写事件代理

    js中的事件委托或是事件代理详解

  • 事件委托

    事件委托 事件委托其实就是利用JS事件冒泡机制把原本需要绑定在子元素的响应事件(click、keydown……)委...

  • js事件委托

    通过构建父元素和子元素,来控制事件。 先通过html构建父元素div,并嵌套一个子元素div,写入不同的方法,设置...

  • js事件委托

    事件委托:1、缘由在做一个项目,点击按钮出现蒙版,但是触发蒙版关闭蒙版,但是给蒙版添加点击事件的话,蒙版上的按钮也...

  • js事件委托

    我们收取快递有两种方法:一是在特定的地点等快递的到来,二是委托人代收。现实当中,我们大都采用委托的方案。而委托人接...

  • JS事件委托

    一、事件委托有三种方法 点击 btn.onclick = function(){...} btn.addEvent...

  • js事件委托

    前言 事件委托,也叫事件代理,是js事件中的一种常用技巧。事件委托的原理就是利用冒泡事件的机制,为一些节点的祖先节...

  • js事件委托

    定义:通俗的讲,事件就是onclick,onmouseover,onmouseout等就是事件,委托呢,就是让别人...

  • JS事件委托

    事件委托从字面意思上理解就是把事件委托给别人做。这样有什么好处呢?设想一下,一个ul里有很多li,现在要给每一个l...

网友评论

      本文标题:JS事件委托

      本文链接:https://www.haomeiwen.com/subject/gtogsxtx.html