javascript动态生成按钮 绑定事件无效

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

clipboard.png

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

clipboard.png

js中代码如下:
clipboard.png

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

阅读 9.4k
4 个回答
  • 不是闭包的问题,是因为你在绑定事件之后又修改了父元素的 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加载结束后才生成的,需要绑定到父元素上

新手上路,请多包涵

事件委托是最靠谱的方法

撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
推荐问题