6

我正在使用一些带有 $(document).ready() 的外部 jQuery 在文档就绪事件触发后插入广告,例如:

$(document).ready( function() {
  $('#leaderboard').html("<strong>ad code</strong>");     
});

这是为了防止用户界面因广告加载缓慢而被阻塞。到目前为止,它运行良好。

现在我需要通过我们的 CMS 系统插入更多广告,这不能是外部 JS 文件的一部分,所以我想知道我可以使用第二个文档就绪事件并使用内联脚本标签插入它吗?如果是这样,首先执行外部 JS 文档就绪事件或内联脚本的顺序是什么?

4

5 回答 5

10

您可以使用任意数量的事件方法,jquery 将它们加入队列中。方法调用的顺序与定义顺序相同 - 最后添加的是最后调用。

一个有用的事情可能还在于,您可以使用 ajax 加载带有脚本的 html 代码,并且当代码加载到 DOM 时,$().ready() 也会被调用,因此您可以动态加载广告。

于 2009-04-17T10:04:06.997 回答
9

是的,添加多个 $(documents).ready()s 不是问题。所有将在就绪事件上执行。

但是请注意,您的代码示例是错误的。$(document).ready() 接受一个函数,而不是一个表达式。所以你应该给它一个这样的函数:

 $(document).ready( function() {
  $('#leaderboard').html("<strong>ad code</strong>");     
 });

该函数将在文档准备好时执行。

于 2009-04-17T10:16:05.627 回答
6

这是一个关于多文档就绪的小教程

于 2009-04-17T10:04:39.367 回答
3

jQuery 方式的一个额外好处是您可以有多个 ready() 定义。这是所有 jQuery 事件的情况。

$(document).ready(function () { alert("Number One"); });

$(document).ready(function () { alert("第二个");

于 2009-04-17T10:15:34.757 回答
1

JQuery 按照定义的顺序调用就绪函数。如果您想先加载一些数据并延迟执行,请使用holdReady()

于 2011-08-05T13:44:14.623 回答