js动态创建button并添加点击不生效的坑
在开发中,遇到一个棘手的问题:在页面刷新后,从服务器获取的数据消失,且动态创建的按钮点击不生效。经过一番调试,终于找出原因并找到了解决方法。失效的原因在于:onclick仅对当前DOM中存在的元素有效。对于动态生成的元素,无法监测,自然无法绑定。
首先,把代码中的所有Document都改为ument,请注意大小写!!js中只有ument对象,并不存在Document对象!这不是你觉得大写好看就能随便改的!其次,把所有creatElement改成createElement,这种漏写字母的错误其实仔细检查一下就能发现的。
动态生成的控件不能后台 因为动态生成的控件不能有runat=rver你可以给控件js 再利用js提交一个虚拟的button给后台。
th可以加点击的,你试试onclick=alert(年龄),看看可不可以用。可以用,就说明你的js方法代码可能有问题,不可以用,那是个奇葩的问题了。你也可以试试给年龄套个a标签,再用点击。
不生效可能是你没有阻止冒泡。当点击取消按钮的时候,会触发点击id为name的元素,所以重新加上了带有show的类名。应该在取消的按钮点击参数加上e,函数内加上“e.stopPropagation()”阻止冒泡。
相关问答
问:js导航点击选中效果没反应?为何不生效?-?
答:哎呀,这种情况可能有好多原因呢!也许是代码写错啦,比如事件绑定不正确啥的。
也可能是样式冲突了,或者是相关的脚本没有正确加载哟。
要不您再仔细检查检查,看看能不能找到问题所在呀!
问:用js实现导航栏的下拉列表?
答:哎呀,用 JS 实现导航栏下拉列表不难啦!先获取导航栏元素,然后监听鼠标事件。
当鼠标悬停时,显示隐藏的下拉列表。
可以通过修改样式或者操作 DOM 来实现,再处理鼠标移出时隐藏列表,这样就搞定啦!
问:js导航栏子菜单的隐藏和显示?
答:亲,关于“js 导航栏子菜单的隐藏和显示”呀,这一般可以通过监听鼠标事件或者点击事件来实现呢。
比如鼠标移入移出时触发相应函数控制显示或隐藏,或者点击某个按钮来切换状态哟。
具体还得看您的页面布局和需求哈。
问:js点击导航栏切换div内容?
答:哎呀,这个很简单啦!你可以给导航栏的每个选项添加点击事件,通过 JavaScript 获取点击的选项,然后根据选项来显示或隐藏对应的 div 内容。
比如获取对应的 div 元素,然后修改它的显示属性,这样就能实现切换啦!