如果您想让事件在页面上正常工作,您应该将它放在$(document).ready()函数内部调用。在此函数中的所有内容都会在DOM加载完成之前和页面内容加载完成之后立即加载。
我希望在页面内容加载完成之后才执行JavaScript代码,我该如何做?
如果您想让事件在页面上正常工作,您应该将它放在$(document).ready()函数内部调用。在此函数中的所有内容都会在DOM加载完成之前和页面内容加载完成之后立即加载。
我希望在页面内容加载完成之后才执行JavaScript代码,我该如何做?
load
替代 ready
:$(document).load(function () {
// code here
});
更新
自jQuery 1.8版本以后,需要使用.on()
方法。(http://api.jquery.com/on/)
$(window).on('load', function() {
// code here
});
从这个答案来看:
根据http://blog.jquery.com/2016/06/09/jquery-3-0-final-released/:
移除了已弃用的事件别名
.load
、.unload
和.error
自 jQuery 1.8 版本以来已被弃用。使用.on()
来注册监听器。
没有人提到过这个。
$(function() {
// place your code
});
它是一个函数的速记形式
$(document).ready(function() { .. });
以下
$(document).ready(function() {
});
可以被替换
$(window).bind("load", function() {
// insert your code here
});
我使用的另一种增加页面加载时间的方法是:
$(document).ready(function() {
$(window).load(function() {
//insert all your ajax callback code here.
//Which will run only after page is fully loaded in background.
});
});
你可以通过这种方式避免在"$"中出现未定义
window.addEventListener("DOMContentLoaded", function(){
// Your code
});
编辑:使用“DOMContentLoaded”比仅使用“load”更快,因为“load”会等待页面完全加载,包括图片...而“DOMContentLoaded”只等待结构。
编辑:这段代码将等待所有内容(图像和脚本)在浏览器中完全加载和渲染。
我曾经遇到过这样的问题:$(window).on('load',function(){ ... })
对我的代码来说太快了,因为我使用的Javascript是用于格式化和隐藏元素的。元素被隐藏得太快,留下的高度为0。
现在我使用$(window).on('pageshow',function(){ //code here });
它会在我需要的时候触发。
$(window).on('load', function () {
alert("Window Loaded");
});
在这里编写您想要执行的代码。当您的文档准备就绪时,它将被执行。
$(document).ready(function() {
});
$(document).on('load', ...
是错误的,正确的应该是$(window).on('load',...
。 - User