使用innerHTML造成之前的绑定事件丢失
Hi, 各位高手,最近遇到一个问题,之前使用javascript 对控件进行绑定的事件,但通过innerHMTL存储到一个变量里边去之后,再调用innerHTML进行显示时,发现之前绑定的所有事件都出现了丢失,请问怎么解决???
------解决方案--------------------
参考 jQuery.live() 的实现,把事件绑定到根元素。
------解决方案--------------------
------解决方案--------------------
innerHTML 后重新绑定事件
或者直接把事件写入html 如 innerHTML="<div onlick='fun()'></div>";
------解决方案--------------------
在你要加入innerHTML的地方再加一个div,给个id.
然后把这个innerHTML放在这个div中,
可以不?
------解决方案--------------------dom渲染和js不同步造成的,修改事件绑定试下
------解决方案--------------------楼主说的是AJAX里返回JS事件的问题吧。这个以前在做的时候遇到过。是用下面的方法解决的:
在返回的<script>里加个属性 <script defer="defer" >...</script> 这样就行了。
如果不是这个问题,就是对INNERHTML赋值导致的事件没有重新绑定的问题,那就如上所说,赋值之后重新绑一下就是了。