菜鸟学JS(五)——window.onload与$(document).ready()

咱们继续说JS,咱们经常在页面加载完成之后作一些操做,好比一些元素的显示与隐藏、一些动画效果。咱们一般有两种方法来完成这个事情,一个就是window.onload事件,另外一个就是JQuery的ready()方法。那么这 两种方法有什么区别呢?往下看:动画

onload事件,是在页面中全部元素以及内容所有加载完成之后触发的;而ready()方法,则是在页面的DOM结构加载完毕之后就被触发了。也就是说ready()方法会在onload事件以前执行。spa


举一个例子:

假设有一个表现图库的页面,这种页面中可能会包含许多大型图像,咱们能够经过jQuery隐藏、显示或以其余方式操做这些图像。若是咱们经过onload页面设置界面,那么用户在可以使用这个页面以前,必需要等到每一幅图像都下载完成。更糟糕的是,若是行为稍微添加给哪些具备默认行为的元素(好比连接),那么用户的交互可能会致使意想不到的结果。然而当咱们试用$(document).ready(){ }进行设置时,这个界面就会更早地准备好可用的正确行为。

使用$(document).ready(){ }通常来讲都要优于试用onload事件处理程序,但必需要明确一点的是,由于支持文件可能尚未家在完成,因此相似图像的高度和宽度这样的属性此时不必定有效。

code


onload事件一般写成以下形式: blog

function myfunction() {
    
    //your code
    
};

window.onload = myfunction;


或者: 事件

window.onload = function(){
    
  //your code

};



ready()方法一般以下: io

$(document).ready(function(){

    //your code
    
});



或者: function

$().ready(function(){
    
    //your code
    
});



再或者: class

$(function(){
    
    //your code
    
});

 

接下来再看两个例子: 下载

function first(){
    
    alert("first");
    
}

function second(){
    
    alert("second");
    
}

window.onload = second;
window.onload = first; 

 

这段代码会弹出“first”。 程序

 

function first(){
    
    alert("first");
    
}

function second(){
    
    alert("second");
    
}

$(document).ready(function(){
    
    first();
    
});

$(document).ready(function(){
    
    second();
    
});

 


上面这段代码会分别弹出“first”和“second”。


为何会这样呢?由于onload是一个事件,它只能绑定一个值,后面的会覆盖前面的;而ready()是一个方法,方法之间不会互相影响,因此会顺序执行。


OK,作了以上对比,onload和ready()的区别已经很明显了,什么状况下用谁也不用我多说了吧!

相关文章
相关标签/搜索