针对js动态添加元素后,事件处理不起作用的解决方案。
2018-04-06 00:00
274 查看
不起作用的代码:
例子:$(".baby").on("click",function(){
$(this).parent().parent().parent().append("<tr><td><input class='baby' type='text'></td><td><input class='reel' type='text'></td><td><input class='ifxreel' type='text'></td><td><input class='ifxbox' type='text'></td></tr>") ;
})
上面的代码添加的新元素,class=“baby”的元素,在点击了之后没有了实现我们想要的点击功能。
解决方案:
$('body').on("click",'.baby',function(){
$(this).parent().parent().parent().append("<tr><td><input class='baby' type='text'></td><td><input class='reel' type='text'></td><td><input class='ifxreel' type='text'></td><td><input class='ifxbox' type='text'></td></tr>") ;
})
改过后的代码,完全解决了之前的麻烦,当然你也可以将click事件封装成一个函数方法,在添加元素的后面再调用此方法。只是代码量会增加一倍。所以用以上方法,我认为是最好的。
例子:$(".baby").on("click",function(){
$(this).parent().parent().parent().append("<tr><td><input class='baby' type='text'></td><td><input class='reel' type='text'></td><td><input class='ifxreel' type='text'></td><td><input class='ifxbox' type='text'></td></tr>") ;
})
上面的代码添加的新元素,class=“baby”的元素,在点击了之后没有了实现我们想要的点击功能。
解决方案:
$('body').on("click",'.baby',function(){
$(this).parent().parent().parent().append("<tr><td><input class='baby' type='text'></td><td><input class='reel' type='text'></td><td><input class='ifxreel' type='text'></td><td><input class='ifxbox' type='text'></td></tr>") ;
})
改过后的代码,完全解决了之前的麻烦,当然你也可以将click事件封装成一个函数方法,在添加元素的后面再调用此方法。只是代码量会增加一倍。所以用以上方法,我认为是最好的。
相关文章推荐
- JS动态给元素添加事件处理代码
- jquery append 动态添加的元素事件on 不起作用的解决方案
- jquery append 动态添加的元素事件on 不起作用的解决方案
- jquery append 动态添加的元素事件on 不起作用的解决方案
- jquery append 动态添加的元素事件on 不起作用的解决方案
- jquery on() bind()绑定的点击事件在js动态新添加的元素生效
- JS实现为动态创建的元素添加事件操作示例
- js 动态给元素添加、移除事件
- JS动态添加元素及绑定事件造成程序重复执行解决
- jquery处理动态生成的元素添加事件
- JS实现为动态添加的元素增加事件功能示例【基于事件委托】
- 通过js动态为标签元素添加点击事件
- Ajax或JS动态添加的元素,Jquery效果不起作用
- jQuery动态添加的元素绑定事件处理函数代码
- Js - JQ事件委托( 适用于给动态生成的脚本元素添加事件)
- jQuery动态添加的元素绑定事件处理函数代码
- 事件委托:给多个元素和动态添加的元素绑定js事件,