저는 최근에 JQuery를 공부하고 있는데 이 내용은 여전히 매우 광범위하고 심오합니다.
$(document).Ready() 메서드 VS OnLoad 이벤트 VS $(window).load() 메서드
JQuery를 접하게 되면 가장 먼저 배우는 것은 언제 이벤트를 시작해야 하는가입니다. 오랫동안 페이지가 로드된 후 발생하는 이벤트는 "Body"의 Onload 이벤트에 로드되었습니다.
Body의 Onload 이벤트와 JQuery의 Ready 메소드에 비해 단점이 많습니다.
1. 여러 기능을 로드하는 데 문제가 있습니다
<body onload="a();b();"> </body>
이렇게 Onload 이벤트에서만 로드할 수 있는데 보기 흉하네요... JQuery에서는 JQuery.Ready() 메소드를 여러 개 사용할 수 있는데, 순서대로 실행됩니다
2. 코드와 콘텐츠가 분리되지 않습니다
이건 말할 것도 없이 역겹다 -.-!!
3. 실행 순서가 다릅니다
Body.Onload 이벤트의 경우 모든 페이지 콘텐츠가 로드될 때까지 트리거되지 않습니다. 이는 사진, 플래시 등을 포함한 모든 콘텐츠를 의미합니다. 페이지에 콘텐츠가 많으면 사용자가 오랫동안 기다려야 합니다. 🎜>
그러나 사진 확대/축소, 사진 자르기 등 일부 특수한 용도에는 사용됩니다. 웹 페이지의 모든 콘텐츠가 로드된 후에 실행해야 합니까? $(window).load() 메서드를 사용하는 것이 좋습니다. 이 메서드는 페이지의 모든 콘텐츠가 로드될 때까지 실행되지 않으며 OnLoad 이벤트의 단점이 없습니다.
<script type="text/javascript"> $(window).load(function() { alert("hello"); }); $(window).load(function() { alert("hello again"); }); </script>
물론 해당 Unload 메소드를 잊지 마세요
$(window).unload(function() { alert("good bye"); });
모든 DOM이 로드되기 전에 JS 코드 실행
제가 디버깅할 때 이 방법을 가장 즐겨 사용하고, 개발할 때도 가끔 이 방법을 사용합니다
<body> <script type="text/javascript"> (function() { alert("hi"); })(jQuery) </script> </body>
<body> <div id="test">this is the content</div> <script type="text/javascript"> alert($("#test").html());//I Can display the content </script> </body> <body> <script type="text/javascript"> alert($("#test").html());//I Can't display the content </script> <div id="test">this is the content</div> </body>