簡體   English   中英

Document Ready vs Window Onload - undefined不是一個函數

[英]Document Ready vs Window Onload - undefined is not a function

我在我的腳本的開頭添加一個小的初始化函數來彈出一個登錄對話框,我最初想在窗口加載后這樣做,所以我試圖使用以下代碼:

$( window ).onload(function() {
    console.log("foo");
});

但是,它總是返回

未捕獲的TypeError:undefined不是函數

我決定使用以下代碼,它工作正常:

$( document ).ready(function() {
    console.log("foo");
});     

我完全沒有問題使用文件准備實現我的目標,我只是想知道為什么窗口onload不起作用。

$( window ).onload(function() {
   console.log("foo");
});

是不正確的

正確的將是

window.onload = function() {
   console.log("foo");
};

要么

$( window ).load(function() {
   console.log("foo");
});

要么

$( window ).on('load', function() {
   console.log("foo");
});

-----編輯-----

如果您使用的是jQuery,我會推薦“就緒”功能

$( document ).ready(function() {
   console.log("foo");
});

或短版

$(function() {
   console.log("foo");
});

我認為你的意思是window.onload ,這是一個javascript事件

window.onload = function(){
  // x functionality when window loads
}

$(window).load是jQuery中的一個類似事件。 $(document).ready是用於DOM准備和加載時的jQuery。

對於一些瑣事: $(document).ready實際上是上面發生的第一個事件,因為它不等待圖像(等)。 它在DOM加載后直接觸發。 其他兩個等到整個頁面加載完畢。

window.onload = function() {

};

這不是jQuery

當頁面中的所有內容都加載完畢后,Window.load將觸發。 這意味着不僅加載了整個DOM,而且完全加載了任何鏈接的資源,如圖像。 因為這等待圖像完成加載,有時需要很長時間才能開始。

請參閱下面的代碼,該代碼將在圖像加載功能之后觸發窗口加載事件,因此如果要在渲染過程中“提前”進行干預,則可以使用document.ready事件,而無需等待圖像加載。


  
 
  
  
<script src="http://ajax.googleapis.com/ajax/libs/jquery/1.11.2/jquery.min.js"></script>
    <script>
        $(document).ready(function(){        
            $("img").load(function(){
            alert("Image loaded.");
        });
   });
$(window).load(function(){
   alert('load my window when all the resources on the page is loaded');
});
</script>
 <html>  
  <head>    

</head>
<body>
<img src="img_moustiers-sainte-marie.jpg" alt="Cinqueterra" width="304" height="236">

<p><b>Note:</b> Depending on the browser, the load event may not trigger if the image is cached.</p>
</body>
</html>

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM