如何动态插入jquery代码

How to dynamically insert jquery code

本文关键字:插入 jquery 代码 动态 何动态      更新时间:2023-09-26

我正在尝试在动态加载的内容上使用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代码插入到script元素中时,就会出现问题。这不起作用,并导致脚本根本无法运行。

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源文件,并将所有代码封装到一个窗口中。addEventListener('load',function())用于在页面加载完成时调用启动上面代码的函数。

有没有一种方法可以动态创建对jquery函数的调用?我这样做对吗?我被难住了一段时间,谷歌还没有为我解决这个问题,任何帮助都将不胜感激。

这应该可以实现您想要的:

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

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

function iAnimateThings() {
   $("div").animate({height:300,opacity:0.4},"slow");
}

嘿,你的代码没有错,你只是在这一行漏掉了一个倒置的逗号

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

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