日期:2014-05-16  浏览次数:20466 次

使用innerHTML造成之前的绑定事件丢失
Hi, 各位高手,最近遇到一个问题,之前使用javascript 对控件进行绑定的事件,但通过innerHMTL存储到一个变量里边去之后,再调用innerHTML进行显示时,发现之前绑定的所有事件都出现了丢失,请问怎么解决???

------解决方案--------------------
参考 jQuery.live() 的实现,把事件绑定到根元素。
------解决方案--------------------
探讨

参考 jQuery.live() 的实现,把事件绑定到根元素。

------解决方案--------------------
innerHTML 后重新绑定事件

或者直接把事件写入html 如 innerHTML="<div onlick='fun()'></div>";
------解决方案--------------------
在你要加入innerHTML的地方再加一个div,给个id.

然后把这个innerHTML放在这个div中,

可以不?
------解决方案--------------------
dom渲染和js不同步造成的,修改事件绑定试下
------解决方案--------------------
楼主说的是AJAX里返回JS事件的问题吧。这个以前在做的时候遇到过。是用下面的方法解决的:

在返回的<script>里加个属性 <script defer="defer" >...</script> 这样就行了。

如果不是这个问题,就是对INNERHTML赋值导致的事件没有重新绑定的问题,那就如上所说,赋值之后重新绑一下就是了。