js中load與onload的區別
阿新 • • 發佈:2018-12-31
在寫互動的時候,載入函式使onload還是load呢?糾結下,百度下,谷歌下。。。。。
趁機整理以防遺忘!!
且js中window.onload(function)等價於jquery中$(window).onload(function)
一:window.load這個應該只是表明事件方法,但並未執行,比如hover、click表示事件,但它並未執行,必須用上hover、onclick他才會執行
在頁面載入渲染的時候通常會有一個Loading效果,這時就可以用它了:
JS:
$(window).load(function)頁面當中的圖片和其他資源載入完成之後才會執行;$(window).load(function(){ $(".loadingicon").addClass("loader-chanage"); $(".loadingicon").fadeOut(300,function(){ $(".loadingicon").remove(); $(".maker").show().animate({"right":"0"},500); }); })
但是js中window.onload(function)中的這個方法可能會在某些資源(如圖片)未載入完全就執行;
二:window.onload 這個表示載入完頁面所有東西以後才執行,在頁面只允許出現一個onload函式,因為它可編函式個數只有一個:
JS:
執行結果:<!DOCTYPE html> <html lang="en"> <head> <meta charset="utf-8"> <title>demo float</title> </head> <body> <script type="text/javascript"> window.onload = function(){ alert("這是1");}; window.onload = function(){ alert("這是2");}; </script> </body> </html>
三:說完以上還有一個Jquery的$(document).ready(function),網頁中的所有DOM結構繪製完畢後就執行,可能DOM元素關聯的內容沒有載入完,例如圖片以及設定的相關高度寬度等,這時可以考慮jquery中的load方法規避;另外$(document).ready(function)可編寫函式不限,如:
執行結果:<!DOCTYPE html> <html lang="en"> <head> <meta charset="utf-8"> <title>demo float</title> <script type="text/javascript" src="http://static.ruilife.net/static/js/jquery-1.9.1.min.js"></script> </head> <body> <script type="text/javascript"> $(document).ready(function(){ console.log("這是1");}); $(document).ready(function(){ console.log("這是2");}); </script> </body> </html>
最後總結一下:
js:window.onload頁面一執行就執行該函式,執行該函式時,可能頁面中的圖片還沒有載入完成!
jquery: $(window).load()頁面中的圖片或其它東西載入完成之後,執行該函式。
呼叫load方法的完整格式是:load(
url, [data], [callback] )引數分別url地址、檔案型別(php、html等)、回撥函式,也支援選擇器載入load("test.html #內容id名")