web前端

位置:IT落伍者 >> web前端 >> 浏览文章

关于innerHTML后丢失动态绑定的EVENT问题


发布日期:2019年01月14日
 
关于innerHTML后丢失动态绑定的EVENT问题

用innerHTML取出一段内容后再innerHTML回去那么原来动态绑定的事件就会丢失如:
html:

代码如下:
<body><div id=d>点击</div></body>


script:

代码如下:
documentgetElementById(d)onclick=function(){alert()};
var html=documentbodyinnerHTML;
documentbodyinnerHTML=html;


这段代码执行后点击d是没有任何反应的
解决方法
把onclick绑定到父元素利用冒泡原理判断当前元素是否为d若为d则执行

代码如下:
documentbodyonclick=function(e){
var e=e||event;
var current=etarget||esrcElement
if(currentid==d){alert()}
}


这也是折中的方法肯定会影响效率的

上一篇:技巧:如何定义CSS元素的显示属性

下一篇:用innerhtml提高页面打开速度