0

我正在尝试在动态加载的内容上使用 jQuery 丰富的动画功能。

我可以像这样动态地将脚本插入到元素中:

var element = document.createElement("div");
element.innerHTML = "some html here";

var script  = document.createElement("script");
script.type = "text/javascript";
script.text = 'alert("Alert!");';

element.appendChild (script);

当我尝试将 jquery 代码插入脚本元素时会出现问题。这不起作用并导致脚本根本不运行。

var element = document.createElement("div");
element.innerHTML = "some html here";

var script  = document.createElement("script");
script.type = "text/javascript";
script.text = 'alert("Alert!");\n';
script.text = script.text+'$("div").animate({height:300,opacity:0.4},"slow");\n';

element.appendChild (script);

我可以成功地附加 javascript 代码来更改我想要的元素,但是使用 jquery 函数会简化事情。

使用 firebug,我可以看到脚本元素已加载到 dom 中,但是当我将 jquery 代码添加到其中时,没有任何反应,甚至没有警报。

我已将 jquery 源文件包含在我的主文档中,并将我的所有代码包装到一个 window.addEventListener('load', function()) 中,以便在页面完成加载时调用启动上述代码的函数。

有没有办法动态创建对 jquery 函数的调用?我会以正确的方式解决这个问题吗?我已经被难住了一段时间,谷歌还没有为我解决这个问题,感谢任何帮助。

4

2 回答 2

0

这应该做你想要的:

$('body').append('<s' + 'cript>console.log("lol");</script>');

但是为什么你不将你的代码包装成一个你可以随时调用的函数呢?

function iAnimateThings() {
   $("div").animate({height:300,opacity:0.4},"slow");
}
于 2012-09-13T19:45:21.387 回答
0

嘿,您的代码没有问题,您只是在这一行错过了一个引号

script.text = script.text+'$("div").animate({height:300,opacity:0.4},"slow")';

这是你的工作小提琴 http://jsfiddle.net/vYut9/

于 2012-09-13T19:45:55.520 回答