社区
JavaScript
帖子详情
使用innerHTML造成之前的绑定事件丢失
lawrendc
2011-12-29 06:04:14
Hi, 各位高手,最近遇到一个问题,之前使用javascript 对控件进行绑定的事件,但通过innerHMTL存储到一个变量里边去之后,再调用innerHTML进行显示时,发现之前绑定的所有事件都出现了丢失,请问怎么解决???
...全文
539
12
打赏
收藏
使用innerHTML造成之前的绑定事件丢失
Hi, 各位高手,最近遇到一个问题,之前使用javascript 对控件进行绑定的事件,但通过innerHMTL存储到一个变量里边去之后,再调用innerHTML进行显示时,发现之前绑定的所有事件都出现了丢失,请问怎么解决???
复制链接
扫一扫
分享
转发到动态
举报
写回复
配置赞助广告
用AI写文章
12 条
回复
切换为时间正序
请发表友善的回复…
发表回复
打赏红包
greency
2011-12-31
打赏
举报
回复
dom渲染和js不同步造成的,修改事件绑定试下
诺维斯基
2011-12-31
打赏
举报
回复
在你要加入innerHTML的地方再加一个div,给个id.
然后把这个innerHTML放在这个div中,
可以不?
不耐烦
2011-12-31
打赏
举报
回复
事件委派~ 很简单的
lawrendc
2011-12-31
打赏
举报
回复
谢谢,各位的解答
碧海情天-赵亮
2011-12-31
打赏
举报
回复
楼主说的是AJAX里返回JS事件的问题吧。这个以前在做的时候遇到过。是用下面的方法解决的:
在返回的<script>里加个属性 <script defer="defer" >...</script> 这样就行了。
如果不是这个问题,就是对INNERHTML赋值导致的事件没有重新绑定的问题,那就如上所说,赋值之后重新绑一下就是了。
licip
2011-12-30
打赏
举报
回复
+1[Quote=引用 2 楼 p2227 的回复:]
参考 jQuery.live() 的实现,把事件绑定到根元素。
[/Quote]
lawrendc
2011-12-30
打赏
举报
回复
其实我想实现的是在Ajax里如何让浏览器的前进后退可用,但参考了网上的解决方案之后,发现我直接生成的代码里链接的响应事件全部丢失,调试发现,使用innerHTML根本不能把attachEvent一并保留下来
lawrendc
2011-12-30
打赏
举报
回复
[Quote=引用 4 楼 hch126163 的回复:]
innerHTML 后重新绑定事件
或者直接把事件写入html 如 innerHTML="<div onlick='fun()'></div>";
[/Quote]
直接这样写的话 不能绑定多个事件吧 而且我还需要传参数进去的
hch126163
2011-12-30
打赏
举报
回复
innerHTML 后重新绑定事件
或者直接把事件写入html 如 innerHTML="<div onlick='fun()'></div>";
zell419
2011-12-29
打赏
举报
回复
[Quote=引用 2 楼 p2227 的回复:]
参考 jQuery.live() 的实现,把事件绑定到根元素。
[/Quote]
+1 或者更新完内容后 再次执行绑定事件 。
p2227
2011-12-29
打赏
举报
回复
参考 jQuery.live() 的实现,把事件绑定到根元素。
whdrs
2011-12-29
打赏
举报
回复
发代码
关于
innerHTML
后
丢失
动态
绑定
的EVENT问题解决方法
用
innerHTML
取出一段内容后再
innerHTML
回去,那么原来动态
绑定
的
事件
就会
丢失
,如: html: 代码如下: <body>
点击
</body> script: 代码如下: document.getElementById(‘d1’).onclick=function(){alert(1)}; var html=document.body[removed]; document.body[removed]=html; 这段代码执行后点击d1是没有任何反应的。 解决方法: 把onclick
绑定
到父元素,利用冒泡原理,判断当前元素是否为d1,若
html
innerhtml
绑定
事件
无效,js中
innerHTML
的动态
绑定
的
事件
丢失
js事
innerHTML
事件
丢失
老前端人以前很容易遇到这种问题。渲染服务器端的数据,包装成自己的HTML,
使用
innerHTML
或者.html(),异步的把它渲染上去。这时候会发现子元素写的一些
事件
不生效。image案发现场例如我们想在body中追加一个div,仔细看下面这个代码,您就会发现我在说什么了。按钮var ob = document.getElementById('btn');//doc...
JS中
innerHTML
动态
绑定
的
事件
丢失
JS中
innerHTML
动态
绑定
的
事件
丢失
问题概述: 父元素
使用
innerHTML
在原有的内容下插入新的内容,会导致原来的子元素
绑定
的
事件
无效,具体代码如下: <body> <button id="btn">点我</button> <script> var body = document.body; ...
js中
innerHTML
的动态
绑定
的
事件
丢失
js事
innerHTML
事件
丢失
----欢迎查看我的博客---- 老前端人以前很容易遇到这种问题。渲染服务器端的数据,包装成自己的HTML,
使用
innerHTML
或者.html(),异步的把它渲染上去。这时候会发现子元素写的一些
事件
不生效。 案发现场 例如我们想在body中追加一个div,仔细看下面这个代码,您就会发现我在说什么了。 <body> <button i...
解决window.document.body.
innerHTML
替换导致
事件
丢失
问题
关于window.document.body.
innerHTML
事件
失效
JavaScript
87,915
社区成员
224,619
社区内容
发帖
与我相关
我的任务
JavaScript
Web 开发 JavaScript
复制链接
扫一扫
分享
社区描述
Web 开发 JavaScript
社区管理员
加入社区
获取链接或二维码
近7日
近30日
至今
加载中
查看更多榜单
社区公告
暂无公告
试试用AI创作助手写篇文章吧
+ 用AI写文章