2011-01-12 55 views
-4

我如何的onload寫這篇文章的JavaScript代碼的jQuery中如何在jquery中寫這段代碼?

<script> 
function init() {     

    alert('hi: '); 
} 

var previousOnload = window.onload;   
window.onload = function() { 
    if (previousOnload) { 
     previousOnload(); 
    } 

    init(); 
} 
</script> 
+1

旁邊的問題:你如何退出?它似乎不斷地自稱? – polarblau 2011-01-12 12:48:32

+7

這不是一個代碼寫入服務,這是一個問答網站。你有具體的問題嗎?或者至少向我們展示你到目前爲止嘗試過的東西。 – Bobby 2011-01-12 12:49:34

回答

1

使用jQuery,你不必「記住」以前的onload,無論是窗口和jQuery的onload事件將運行:

<script type="text/javascript"> 
    window.onload = function() { 
     WriteLine("window onload"); 
    }; 

    $(function() { 
     WriteLine("jQuery onload"); 
    }); 

    function WriteLine(msg) { 
     alert(msg); 
    } 
</script> 

現場測試案例:http://jsfiddle.net/SXQmT/

1

我會做到以下幾點:

function LoadEvent(Func) 
{ 
    var OldOnLoad = window.onload; 
    if (typeof OldOnLoad != 'function') 
    { 
     window.onload = Func; 
    }else{ 
     window.onload = function() 
     { 
      OldOnLoad(); 
      Func(); 
     } 
    } 
} 

然後用像這樣:

LoadEvent(Init); 
1

$(window).load(init)會做幾乎同樣的事情。但沒有previousOnload混亂的事情。它會記住以前的onload,並在頁面完全加載時調用它們。