window.onload中失效的問題


在頁面中,我們有時候想讓頁面加載的時候有多個JS事件,一般的時候我們會這樣做

window.onload=function(){

alert("aaa");

}

window.onload=function(){

alert("bbb");

}

運行結果並不是我們想要的那樣,一下子彈出 aaa,然后彈出bbb

而只會彈出bbb,好像是后面的覆蓋了前面的JS代碼

如何實現我們的兩個想要的結果呢

window.onload=function(){

a();

b();

}

function a(){

alert("aaa");

}

functiion b(){

alert("bbb")

}

這樣的話會依次的彈出我們想要的結果,原理大家也應該看出來了,這個就是在加載函數中寫入兩個函數,用加載函數來調用這些函數。

對於上面的這種方法完全可以解決編程中的問題,但有時候我們在遇到很大的頁面的時候,這種方法寫起來不是很舒服,而習慣於用jQuery的方法$(document).ready(function(){}),如下

$(document).ready(function(){

alert("aaa");

alert("bbb");

})

運行這段代碼,大家一定可以得到想要的結果。aaa,bbb,是不是感覺很簡單,jQuery最大的作用就是簡化JS,當然這段代碼我們還可以再簡化如下

$(function(){

alert("aaa");

alert("bbb");

})

運行結果還是很上面一樣的。

大家估計也都看到了,window.onload=function(){}和$(function(){})可以火環,但是這個兩個函數的執行時間不同的,前者就是頁面所有的元素加載完畢后執行,而后者是遍歷了所有的DOM節點加載后再執行,相比較而言后者比較‘快’;

切記后者的$符號是代表jQuery,所以必須引入jQuery的庫。

有時候我們用原生的JS中也會出現$符號,但是他們代表的意義是不同的

function $(id){

obj=document.getElementById(id)

return obj;

}

docuement.getElementById("uname").value可簡寫$('uname').value

切記兩者的$不一樣,所有我們在遇到的時候一定要重新聲明

例如我重新聲明jQuery中的$,$在jQuery庫中本身代表jQuery,希望別把你混淆。

var $$=jQuery;

$$(function(){

alert("aaa");

alert("bbb")

})

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM