何时使用JQuery.html()执行内联脚本?

时间:2014-03-25 19:12:24

标签: javascript jquery

我使用JQuery的html()函数插入HTML以及一些内联javascript。

似乎JQuery.html()是一个同步函数,但它不保证内联脚本在继续之前完成执行。

例如:

$elem.html(some_html_with_inline_scripts);
function_that_relies_on_inline_scripts_done_executing();

不起作用,因为我的内联脚本在函数调用之后执行。

有什么方法吗?

1 个答案:

答案 0 :(得分:0)

对于解决方法来说这是怎么回事?

var scripts_loaded = false; //set this true at end of some_html_with_inline_scripts
$elem.html(some_html_with_inline_scripts);

function are_scripts_loaded() {
 if (scripts_loaded) {
  clearInterval(intid);
  function_that_relies_on_inline_scripts_done_executing();
 }
}
var intid = setInterval(are_scripts_loaded, 10);

如果加载了脚本,则每10毫秒进行一次测试。您可能希望将其从10增加到其他内容。