为什么我的jQuery事件绑定在动态新增元素上无法正常生效?
问题原因
你当前使用的直接绑定写法只会给页面初始加载时就已存在的.start元素绑定点击事件,后续通过append动态新增的同class元素不会被自动绑定该事件,因此点击新增行的输入框没有响应。
解决方案
使用jQuery事件委托机制,将事件绑定到页面中始终存在的、离目标元素最近的父级元素(此处用表格#TodayTable即可),再指定触发事件的目标选择器,这种写法下所有匹配的元素无论初始存在还是后续动态新增,都会正常触发对应事件。
修正后的jQuery代码如下:
$(".addNewRow").on('click',function() { $("#TodayTable").append('<tr><td class="start"><input type="text"></td></tr>'); }); // 事件委托写法:绑定到静态父级,委托给.start元素触发 $("#TodayTable").on('click', '.start', function() { $(this).find('input').val('5'); });
内容的提问来源于stack exchange,提问作者Highdel
相关产品推荐
相关产品推荐

