这个问题纠结了好久,动态生成的表格,直接按照普通方式,onclick=“afun();” 无法在function内获取到正确的this,就无法获取表格其他项数据。绑定也无法成功,直接没反应。
后来debug了一下,感觉jquery绑定事件实在加载前进行的,此时还没有动态生成表格,因此就失败了吧。
解决方法如下:
1 JQuery动态生成表时,做好ID标记,class当然也可以
如'<td><button id="editproduct" class="btn btn-primary" ><i class="glyphicon glyphicon-user"></i></button></td>'
2 绑定click事件,注意监听table而不是直接监听这个ID,table是在html里静态存在,jquery仅动态生成tbody标记内容 tr td
$("table").on('click',"button[id='editproduct']" ,function() { }
3 可以在function内正确获取this ,正确获取表内其他项数据。
var userName = $(this).parents("tr").find("#productid").text();
查了好久才解决,前端小白一个,呵呵。。。。。。。。。
最近事情多,越来越难抽时间做这个小项目了。。。继续坚持吧。
本文介绍了解决动态生成表格中按钮点击事件无法正常绑定的问题。通过为动态生成的元素设置ID或class,并使用JQuery的.on()方法绑定事件到静态存在的父元素上,实现了点击事件的有效触发。

284

被折叠的 条评论
为什么被折叠?



