1

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

就像 javascript 在 div 中的 html 更新后立即与所有具有该功能的元素绑定。

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

目前,我通过每次使用以下代码更改该 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 或保持其连接?

4

1 回答 1

0

执行js代码可以直接使用eval()它会立即执行js,不管html或dom结构的变化。

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

于 2013-05-27T08:17:24.613 回答