美文网首页
js事件委托

js事件委托

作者: 我不叫奇奇 | 来源:发表于2017-04-08 21:23 被阅读36次
  • 事件委托的使用地点
  • 事件委托的原理
  • jQuery中封装耳朵事件委托

问题

将ajax请求回来的数据动态的拼接到html骨架中时,要给这些元素添加事件。

    <ul id="main">
    </ul>
    ...
    $.ajax({
       url:"",
       data:"",
       success:function(data){
           for(var i=data.length-1;i>=0;i--){
               ($("<li></li>"),{
                  class:'data[0].class'
               }).appendTo("#main");
           } 
       }
    })

可以给li直接添加onclick事件。
或者使用事件委托(event delegation)

原理

事件委托是为父元素添加一个监听器,当子元素要添加事件时,事件监听器会分析冒泡上来的事件,从而找到是哪一个子元素执行的事件

基本写法

    // 为父元素添加监听器...
    document.getElementById("main").addEventListener("click",function(e) {
        // e.target是被点击的元素,如果被点击的是li元素
        if(e.target && e.target.nodeName == "LI") {
            // 找到目标并输出
            console.log("这个li的id为"+e.target.id);
        }
    });

当然,这种方法在jQuery也有封装

    $("div").delegate("button","click",function(){
      $("p").slideToggle();
    });

div标签下的button标签被点击时,p标签显示或隐藏。

相关文章

  • 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/vskrattx.html