使用innerHTML更改html后,Javascript函数无法正常工作

时间:2013-05-27 08:12:58

标签: javascript jquery

我有一些html在div中使用了几个JS函数。如果我在JS和innerHTML的帮助下将该div的内容更改为其他一些也有一些JS函数的html代码,它们就会停止工作。如果我然后改回以前的HTML,它仍然无法正常工作。

就像更新div中的html时,javascript一直未绑定到具有该功能的所有元素。

我知道我可以通过隐藏和显示图层来解决这个问题,但我不想这样做。

目前我已经通过使用此代码每次更改该div的html时注入js文件来解决此问题:

function inject(src, cb, target){
    target = target || document.body;
    var s = document.createElement('SCRIPT');
    s.charset = 'UTF-8';
    if(typeof cb === 'function'){ 
        s.onload = function(){
            cb(s);
        }; 
        s.onreadystatechange = function () {
            (/loaded|complete/).test(s.readyState) && cb(s);
         };                     
    }
    s.src = src;
    target.appendChild(s);
    return s;
};

每当我更新html时,如何在html文件中加载一个新行,这似乎不是一个非常优雅的解决方案。

当我在不重新加载页面的情况下更改html时,有没有办法制作我重新加载或保持连接的javascript?

1 个答案:

答案 0 :(得分:0)

执行js代码,您可以直接使用eval()它将立即执行js,无论html或dom结构更改如何。

http://www.w3schools.com/jsref/jsref_eval.asp