javascript - init()为啥无法给动态生成的btn加点击事件?
高洛峰
高洛峰 2017-04-11 11:51:51
[JavaScript讨论组]



    
    task_16
    




高洛峰
高洛峰

拥有18年软件开发和IT教学经验。曾任多家上市公司技术总监、架构师、项目经理、高级软件工程师等职务。 网络人气名人讲师,...

全部回复(2)
高洛峰

init的时候otable.getElementsByTagName('button').length等于0,所以根本绑定不了事件
可以在renderApiList 之后再为按钮添加事件,也可以使用事件委托的方式。
简单来说,就是这么写

document.body.onclick = function(e) {
    if(e.target && e.target.nodeName == "button") {
    }
});

推荐使用事件委托,这样可以在一开始就绑定事件,特别是如果你要监听的节点特别多,不使用这种方式,就要为每个节点添加事件监听器。选择多个节点共有的父节点,并且是init中就已经创建出的节点。当这个父节点事件响应时,事件监听器会告诉你是从哪个子节点触发并冒泡上来的事件,即可对这个子节点进行操作。
如果还不明白的话,再去搜索下“事件冒泡”

伊谢尔伦

因为在init()odel()里还没有成员。你应该在删除按钮创建时绑定事件

热门教程
更多>
最新下载
更多>
网站特效
网站源码
网站素材
前端模板
关于我们 免责申明 举报中心 意见反馈 讲师合作 广告合作 最新更新
php中文网:公益在线php培训,帮助PHP学习者快速成长!
关注服务号 技术交流群
PHP中文网订阅号
每天精选资源文章推送

Copyright 2014-2026 https://www.php.cn/ All Rights Reserved | php.cn | 湘ICP备2023035733号