在动态加载的内容中执行JS

时间:2010-09-21 01:20:53

标签: javascript jquery ajax onload

我开始研究一个动态加载所有不同页面内容的项目 从表面上看,这似乎很简单,对脚本的AJAX调用返回放在DIV中的内容。除了不仅返回HTML而且还返回JS。我看到很多这样的事情: -

<img src="spacer.gif" height="1" width="1" onload="SOMEJSHERE"/>

在代码中点缀以执行JS函数。这并没有提供我喜欢使用JQuery的HTML / JS代码分离 我可以理解他们不想一次加载所有的JS和HTML,但是它有很多......但这感觉不是最好的方式。

请问一些经验和建议吗?

莱尔

3 个答案:

答案 0 :(得分:1)

查看jQuery .live()事件。它可以将行为(事件绑定)应用于页面上与给定选择器匹配的所有当前和将来的元素。

这意味着新加载的HTML不需要包含任何脚本。只需确保加载的元素具有正确的选择器(类名和ID)。

答案 1 :(得分:0)

嘿,我使用“eval”动态执行js。

e.g。

<script>
var strjs = 'function execute(){alert("foobaring");} execute();';

eval(strjs);

</script>

答案 2 :(得分:0)

最后,我使用了JQuery UI中的tabs.select选项(我们用于ajaxed页面)并根据需要执行了相应的JS。