3

我需要通过 $.getScript 动态包含一个脚本。

然而,问题是,该动态包含的脚本中的 $(document).ready 函数没有被执行。(它们的动态插入不会在 dom 就绪时发生)

有没有办法强迫它这样做?例如,通过伪造 document.ready 事件?

谢谢,韦斯利

4

3 回答 3

3

在 doc ready 被触发后,任何未来的 doc ready 调用都将在解析时执行。

阅读 API

传递给 .ready() 的处理程序保证在 DOM 准备好后执行

于 2011-06-28T07:31:10.223 回答
0

在您的包含文件中,将初始化移到另一个函数并从那里调用它:

//include js:
$(document).ready(initialise);

function initialise(){
}

这在加载这个的文件中你需要做的就是调用initialise

SO已经很好地涵盖了触发就绪事件的主题:

如何在 jQuery 中触发 $().ready()?

触发 $document.ready (所以我无法修改的 AJAX 代码被执行)

于 2011-06-28T07:32:23.807 回答
0

$.getScript()由于文档的 DOM 较早完成加载,因此定义的新处理程序缺少 document.ready 事件是有道理的。

您是否尝试过$(document).trigger('ready')重新触发该事件?当然,之前注册的所有事件处理程序都会被再次调用。

于 2011-06-28T07:21:22.260 回答