使用innerHTML属性添加Html不会触发jQuery ready事件

时间:2015-03-28 21:18:51

标签: javascript jquery html

我使用jQuery的.html()方法遇到了一些性能问题,因为它非常慢。所以我搜索了替代品,我发现了一些:

所以我现在用建议的方法替换.html()。但现在我有另一个问题:

要添加的Html内的Javascript未被执行。

我写了一个简单的小提示来展示正在发生的事情:

任何人都可以建议我如何解决这个问题,因为我需要执行javascript。

2 个答案:

答案 0 :(得分:1)

您可能需要eval()脚本:

var container = document.getElementById("container"),
    content = document.getElementById("content");

$("#button2").on("click", function(){
    container.innerHTML = content.innerHTML;
    var scripts = container.getElementsByTagName('script');
    for(var i=0, l=scripts.length; i<l; i++) eval(scripts[i].innerText);
});

JS Fiddle Demo

答案 1 :(得分:0)

对我来说,第一个按钮会触发脚本,第二个按钮不会触发。

这是因为.innerHTML只引用元素中的文本,而不是scipts或其他标记。