如果希望事件在页面上运行,则应在$(document).ready()函数内调用该事件。DOM加载后以及 页面内容加载之前,其中的所有内容都将加载。
我只想在页面内容加载后执行javascript代码,该怎么办?
Answers:
使用load代替ready:
$(document).load(function () {
// code here
});
更新.on()从jQuery 1.8开始,
您需要使用。(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()注册听众。
$(document).on('load', ...必要性$(window).on('load',...
以下
$(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).on('load',function(){ ... })因为我使用的Javascript是用于格式化目的和隐藏元素的,因此对于我的代码执行起来太快了。元素隐藏得太早,而高度保留为0的元素。
我现在使用$(window).on('pageshow',function(){ //code here });它,并在需要时触发。
您可以这样避免在'$'中获得未定义
window.addEventListener("DOMContentLoaded", function(){
// Your code
});
编辑:使用'DOMContentLoaded'比'加载'更快,因为加载等待页面已完全加载,包括imgs ...而DomContentLoaded仅等待结构
而且,如果您想在第一个函数完成后再运行第二个函数,请参见以下stackoverflow答案。