为什么我用JS动态生成的DIV模块,里面的点击方法不生效?

为什么我用JS动态生成的DIV模块,里面的点击方法不生效?,第1张

不生效主要薯余是因为:

动态生成皮团的dom之前的绑定事件都失效了

动态追加的元素之前的都有事件都已经没了

解决方法:

给父级绑定事件,采用事件委托的方式

dom动态生成燃手橘后,再次获取和重新绑定事件即可

$('.class').on("侍或唯click",function(){……})相当于$('老培.class').bind("click",function(){……})

$(document).on("click"团余,'.class',function(){……})相当于$('.class').live("click",function(){……})

js生成的元素绑定事件必须使用live,但新版的jq,已经淘汰了live,可以用on方法代替,但必须注意写法。

这个问题不是显而易见吗?如果是不用中间变量var div来承接,而是直接用document.getElementsByClassName()这样来设置onclick事件的话编译器是不会提示的,因为编译器认态迅为class可以重复,或许会有多个元素class都帆圆此是相同的,直接换成document.getElementById()就行了,或者给document.getElementsByClassName()设置index,例如document.getElementsByClassName('div')[0].onclick()就OK,建议腔好楼主去了解一下DOM结构


欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/bake/11978793.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2023-05-20
下一篇 2023-05-20

发表评论

登录后才能评论

评论列表(0条)

保存