JS事件委托

起因:AJAX动态生成HTML时,我需要输出两个Button按钮,代码如下:

       response.data.forEach(function(obj, i){
                    var html="<tr><td>"+obj.id+"</td><td>"+obj.name+"</td><td>"+obj.email+"</td><td>"+obj.role+"</td><td><button type='button' class='btn btn-warning'  onclick='modifierMethod()'>修改</button><button type='button' class='btn btn-danger' name="+obj.name+" onclick='deleteMethod()'>删除账号</button></td></tr>";
                    tbody.innerHTML+=html;
                });

现象:输出完成后,发现确实存在两个按钮,但是和按钮绑定的事件一直未能生效

原因:还没有这个元素的时候就绑定完了事件,等AJAX动态生成完,已经没有绑定了

解决:对这个动态生成的HTML做一个事件委托,代码如下:

window.onload=function(){
    var oul=document.getElementById("account");
    oul.onclick=function(ev){
        var ev=ev || window.event;
        var target= ev.target || ev.srcElement;
        if(target.nodeName.toLowerCase()=="button"){
            deleteAccount(target.name);
        }
    }
}

扩展延伸:事件委托
日后再更新...

©著作权归作者所有,转载或内容合作请联系作者
【社区内容提示】社区部分内容疑似由AI辅助生成,浏览时请结合常识与多方信息审慎甄别。
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

相关阅读更多精彩内容

  • 一直以来,对js的一些概念还是不清晰的,很多都没有搞明白,今天无意间在群里见他们提起事件委托,所以查找了一些资料,...
    蝴蝶结199007阅读 2,299评论 1 3
  • 事件委托的使用地点 事件委托的原理 jQuery中封装耳朵事件委托 问题 将ajax请求回来的数据动态的拼接到ht...
    我不叫奇奇阅读 1,504评论 0 4
  • 定义:通俗的讲,事件就是onclick,onmouseover,onmouseout等就是事件,委托呢,就是让别人...
    JYOKETSU3阅读 2,750评论 0 0
  • 前言 事件委托,也叫事件代理,是js事件中的一种常用技巧。事件委托的原理就是利用冒泡事件的机制,为一些节点的祖先节...
    zkhChris阅读 3,514评论 0 3
  • 我们收取快递有两种方法:一是在特定的地点等快递的到来,二是委托人代收。现实当中,我们大都采用委托的方案。而委托人接...
    饥人谷_oathy阅读 4,112评论 0 2

友情链接更多精彩内容