JS事件委托

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

       response.data.forEach(function(obj, i){
                    var html=""+obj.id+""+obj.name+""+obj.email+""+obj.role+"";
                    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);
        }
    }
}

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

你可能感兴趣的:(JS事件委托)