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

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

不生效主要是因为:

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

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

解决方法

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

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

可能原因如下:

1、点击事件名称是onclick,请不要出现拼写错误。

2、事件后面的对应的是方法名称,请确认该方法已经正确定义或者没有出现方法名称的拼写错误,方法名后要加(),如form()。

3、更改标签的内容需要inner.HTML且确认以获取到需要更改的div。

onclick实例:

<html>

<body>

Field1: <input type="text" id="field1" value="Hello World!">

<br />

Field2: <input type="text" id="field2">

<br /><br />

点击下面的按钮,把 Field1 的内容拷贝到 Field2 中:

<br />

<button onclick="document.getElementById('field2').value=

document.getElementById('field1').value">Copy Text</button>

</body>

</html>

效果如下:

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


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

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

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

发表评论

登录后才能评论

评论列表(0条)

保存