javascript动态生成按钮 绑定事件无效
黄舟
黄舟 2017-04-10 17:55:24
[JavaScript讨论组]

1.任务是:用户输如后,点击“确认添加”按钮后,将输入内容添加到下方表格中,增加一行显示。

js中将用户输入的信息保存在aqidata数组中,每次用户新添加一组数据,数组增加一项。根据数组内容重新渲染表格。

js中代码如下:

2.问题是:每次只能给最后一行的button添加成功click事件,其余的button点击没有反应,但是在js跟踪调试时发现代码是执行了的。不晓得是不是闭包问题,鼓捣了一下午,麻烦各位帮忙看一下哪里出问题了,新手上路麻烦多多赐教~小女子感激不尽!

黄舟
黄舟

人生最曼妙的风景,竟是内心的淡定与从容!

全部回复(3)
阿神
  • 不是闭包的问题,是因为你在绑定事件之后又修改了父元素的 innerHTML 导致事件的失效...

  • 不过你可以使用「事件委托」的方式,就是将监听事件绑定在父元素比如 table 上,通过 e.target 判断是哪个子元素触发的...

  • 这样不但代码简洁了很多而且也不会为了同一类的事件绑定多个函数...~= ̄ω ̄=~

  • 当然如果你不想用事件委托,那就别用 innerHTML 改成 appendChild 或者其他的方法╮(╯_╰)╭

黄舟

1.button类名取一样的,然后使用类选择器调用。$(".xx").click(function(){
// do something...
})
2.用delegate()方法
("body").delegate("button","click",function(e){

// do something...

})

手机上回复太累了。。。

伊谢尔伦

javascript动态生成按钮的按钮是在页面js加载结束后才生成的,需要绑定到父元素上

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

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