2011-01-12 89 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,并在页面完全加载时调用它们。