我正在使用一些带有$(document).ready()的外部jQuery在文档就绪事件被触发后插入广告,如:
$(document).ready( function() {
$('#leaderboard').html("<strong>ad code</strong>");
});
这是为了防止广告加载缓慢阻止用户界面。到目前为止,它一直运作良好。
现在我需要通过我们的CMS系统插入更多广告,这不能是外部JS文件的一部分,所以我想知道我可以使用第二个文档就绪事件并使用内联脚本标记插入它吗?如果是这样,首先执行外部JS文档就绪事件或内联脚本的执行顺序是什么?
答案 0 :(得分:10)
您可以根据需要使用任意数量的事件方法,jquery将它们连接到队列中。方法调用的顺序与定义顺序相同 - 最后添加的是最后调用的。
一个有用的东西也可能是,您可以使用ajax加载带脚本的html代码,当代码加载到DOM $()时,也会调用ready(),因此您可以动态加载广告。
答案 1 :(得分:9)
是的,添加多个$(文档).ready()s不是问题。所有这些都将在准备好的活动上执行。
但请注意,您的代码示例有误。 $(document).ready()接受一个函数,而不是表达式。所以你应该给它一个这样的函数:
$(document).ready( function() {
$('#leaderboard').html("<strong>ad code</strong>");
});
文档准备好后将执行该功能。
答案 2 :(得分:6)
答案 3 :(得分:3)
jQuery方式的另一个好处是 你可以有多个ready() 定义。所有人都是如此 jQuery事件。
$(document).ready(function(){ 警报(“第一号”); });
$(document).ready(function(){ 警报(“第二号”);
答案 4 :(得分:1)
JQuery按照定义的顺序调用ready函数。 如果要先加载某些数据,则删除执行使用holdReady()。