添加到文档的innerHTML.body导致jQuery .on()找不到它的目标
Adding to innerHTML of document.body causes jQuery .on() to not find its target
所以我有一些动态生成的HTML的东西。如果您单击一个按钮,它会添加一些具有另一个按钮的html,并且您可以多次添加其他html,生成它的多个副本。这是所有的<form>
标签内,所以我需要使用e.preventDefault()
上的每个按钮,以防止javascript试图提交数据。每个按钮也有自己的onclick
代码。但是,在新生成的内容上使用javascript添加的点击事件存在一个问题。如果我有<button class="myBtn"></button>
,那么在javascript中我有$(".myBtn").click(...)
,这将工作得很好,但只适用于已经存在的按钮,当javascript代码运行时,这意味着新生成的按钮不会有事件附加。这个问题的解决方案在这里找到了。
document.body.innerHTML
。只要执行document.body.innerHTML += "Text"
行,当单击生成的按钮时,上面链接中的代码就不再执行。
我这里有一个例子:https://jsfiddle.net/6hvgatLy/1/
您正在重写整个innerHTML主体,这将删除所有事件侦听器
用append()
代替
$("#deadlyBtn").click(function(e){
e.preventDefault();
document.body.innerHTML += "Now try clicking [Add new Input]"
})
$("#deadlyBtn").click(function(e){
e.preventDefault();
$('body').append("Now try clicking [Add new Input]")
})
演示或者你可以改变你的事件委托到一个不被覆盖的资产,如body
或document
$(document).on("click", ".formDiv .innerContainer .innerBtn", function(e){
e.preventDefault()
$(this).before($('<input type="text" placeholder="Textbox"/>'))
})
相关文章:
- 气质的“nestRemoting()”有时可以'找不到关系
- 错误405:向Java控制器(Ajax)发送JSON时找不到POST方法
- 找不到模块捆绑包
- for循环中的javascript if语句找不到==
- 为什么JavaScript可以'找不到给定的InnerHTML并返回Cannot set property
- 失败:等待Protractor与页面同步时出错:“”;在窗口上找不到角度”;
- Babel编译错误:找不到模块核心js/library/fn/get迭代器
- [Vue warn]:找不到元素
- ngRoute找不到模板
- 未能加载,因为找不到支持的源.当播放HTML5音频元素时
- 因果报应-找不到模块:错误:无法解析模块'scs'
- Angular 2:在本地.json文件上找不到文件
- module.js在运行iron节点时找不到模块
- 放大弹出生成“;找不到文件”;YouTube视频的错误
- 找不到属性'link_to'on对象(生成的应用程序控制器)
- Ruby on rails 应用程序在生产环境中找不到 JavaScript 运行时(使用 passenger 和 ng
- Ruby on Rails:“找不到文件'jquery.ui.datepicker'”
- 添加到文档的innerHTML.body导致jQuery .on()找不到它的目标
- Ruby on rails 3.1 - ExecJS,找不到JavaScript运行时
- ruby on rails-预编译时在javascript资产中找不到Route helper方法