官網連結:load(load有兩種,描述有javascript的)、ready
jQuery1和2可以說是一樣的,最大的差別是jQuery2不支援6~8,官網有說
我還有找到中文版的jQuery,和官網簡直一模一樣,請參考這裡
這個網址的教學也有整套的,可以參考看看
※程式進入點
官網連結可以看出,在1.8時,已將load和unload標記為過時了,但過時不代表移除,還是能用
$(window).load(function() { alert('two'); $('img').css('border', '20px solid red'); }); window.onload = function(){ alert('three'); $('img').css('border', '20px solid yellow'); } window.onload = function(){ alert('four'); $('img').css('border', '20px solid green'); } $(function() { alert('zero'); $('img').css('border', '20px solid blue'); }); $(document).ready(function() { alert('one'); $('img').css('border', '20px solid lightblue'); }); -------------------- <img src="Koala.bmp">
※load和javascript的window.onload類似,
但window.onload寫很多個都只會執行最後一個,
load寫多都可以執行到,而先後順序,load比onload還快
※ready官網說有三種方法,但其中一種不建議使用,所以我只寫上面程式碼的zero和one
它是最先執行的(前面兩個必需等到圖片都載入才會執行),而且可以寫很多個,都不會有覆蓋的情形
※官網也說「$」可用「jQuery」代替,大小寫有差
※以上我用Chrome測比較明顯,圖片還沒出來時,會先執行zero-->one,img它已經抓到了(但屬性src還沒,所以圖片還沒顯示),旁邊的框從藍色變淺藍色
然後執行two-->four,旁邊的框從紅色變綠色
※使用IE11測試,一開始就有圖片了,然後它會全部alert完,直接將框框變成最後的顏色,中間的顏色都沒出現過
※總結就是jQuery的兩種方法都可以寫很多個,一樣的方法,先寫的先執行
ready不會等到圖片載入就開始執行了,所以是最先執行的
再來是load方法,最後是onload
※衝突
有可能使用其他的library,也會用到「$」,如「propotype.js」,只要有import的那一頁,就不能再用「$」了,因為propotype有用到,這就是在專案為什麼有時候可以用,有時候不能用的原因,使用以下的語法,可以自定符號,取代「$」jQuery預設的「$」和「jQuery」是等價的,所以懶的設定可以直接用「jQuery」取代「$」
官網連結
※noConflict沒參數的設定
// A jQuery.noConflict(); $( document ).ready(function() { alert('init'); }); // B var Q = jQuery.noConflict(); Q( document ).ready(function() { alert('init'); });
※使用A的方式,一經設定(所以寫在ready後面還是可以),就只能寫「jQuery」開頭才有用,如上的寫法是抓不到jQuery的,而且不管有沒有加參數都是一樣的結果
※使用B的方式,取一個變數名(不一定一個字元),就可以拿它來代替「$」了
※noConflict有參數的設定
參數是boolean,表示要不要從全域範圍移除jQuery我試的結果只對jQuery開頭的有作用
// C jQuery.noConflict(true); jQuery( document ).ready(function() { alert('init'); }); // D var Q = jQuery.noConflict(true); Q( document ).ready(function() { alert('init'); });
※使用C的方式,不管用「$」還是「jQuery」開頭,jQuery都沒有作用了
如果給false,jQuery開頭的可以執行
※使用D的方式(和B一樣),取一個變數名(不一定一個字元),就可以拿它來代替「$」了
※unload
$(window).unload(function() { alert("離開了"); });
※我在IE 11試的結果,重整、在網址列打別的網址後按enter、按下一頁都會觸發;
但Chrome沒有作用
沒有留言:
張貼留言