페이지로드 후 jquery 코드를 수행하는 방법은 무엇입니까?


85

페이지에서 이벤트가 작동하도록하려면 $ (document) .ready () 함수 내에서 이벤트를 호출해야합니다. DOM이로드 되 자마자 페이지 내용이로드 되기 전에 그 안에있는 모든 것이 로드됩니다.

페이지 내용이로드 된 후에 만 자바 스크립트 코드를 작성하고 싶습니다. 어떻게해야합니까?

답변:


168

load대신 사용 ready:

$(document).load(function () {
 // code here
});

업데이트.on() jQuery 1.8부터 사용해야 합니다. ( http://api.jquery.com/on/ )

$(window).on('load', function() {
 // code here
});

에서 이 대답 :

http://blog.jquery.com/2016/06/09/jquery-3-0-final-released/ 에 따르면 :

더 이상 사용되지 않는 이벤트 별칭 제거

.load, .unload,와 .error, jQuery를 1.8부터 사용되지 않습니다, 더 이상 없습니다. .on()리스너를 등록하는 데 사용 합니다.

https://github.com/jquery/jquery/issues/2286


1
이 답변에 대한 의견에서 : stackoverflow.com/a/37817516/957246 $ (window) .on ( "load", function () {// code here}); .. ". load"는 더 이상 사용되지 않기 때문입니다.
trapper_hag 2014 년

.on ()을 사용하면 너무 뻔한데 ..하지만 이걸 찾기 전에 벽에 머리를 두드리는 데 1 시간을 보냈습니다 .. 감사합니다 ..!
ghuroo

2
시도의 실수를 조심 $(document).on('load', ...해야합니다$(window).on('load',...
User

29

수행원

$(document).ready(function() { 
});

교체 가능

$(window).bind("load", function() { 
     // insert your code here 
});

페이지로드 시간을 늘리는 데 사용하는 방법이 한 번 더 있습니다.

$(document).ready(function() { 
  $(window).load(function() { 
     //insert all your ajax callback code here. 
     //Which will run only after page is fully loaded in background.
  });
});

2
준비된 핸들러의로드 핸들러? 그 시점에 창이 존재하기 때문에 문서를 준비 할 필요가 없으며,없이 핸들러를 첨부 할 수 있습니다.
dalore

18

아무도 이것을 언급하지 않았다

$(function() {
    // place your code
});

약식 함수입니다.

$(document).ready(function() { .. });

16

편집 :이 코드는 모든 콘텐츠 (이미지 및 스크립트)가 완전히로드되고 브라우저에 렌더링 될 때까지 기다립니다.

내가 사용한 Javascript 가 서식을 지정하고 요소를 숨기는 $(window).on('load',function(){ ... })것이기 때문에 내 코드에 대해 너무 빨리 실행 되는이 문제 가 발생했습니다 . 너무 빨리 숨겨지고 높이가 0 인 요소입니다.

나는 지금 사용 $(window).on('pageshow',function(){ //code here });하고 내가 필요로 할 때 발사됩니다.


1
이것은 나에게도 도움이되었으며 jQuery Mobile 페이지가 표시된 후에 정확히 일부 코드를 실행하고 싶었습니다. 감사합니다. @Boyd 시르
codedudey

이 코드가 허용 된 답변과 비교하여 얼마나 더 도움이되는지 추가하고 싶었습니다. 감사합니다.
Countzero

10

이런 식으로 '$'에서 정의되지 않는 것을 피할 수 있습니다.

window.addEventListener("DOMContentLoaded", function(){
    // Your code
});

편집 : 'DOMContentLoaded'를 사용하면로드 대기 페이지가 완전히로드되고 img가 포함되어 있기 때문에 '로드'보다 빠릅니다. 반면 DomContentLoaded는 구조 만 기다립니다.


8

나는 같은 문제를 찾고 있으며 여기에 도움이됩니다. 다음은 jQuery 버전 3.1.0이며 로드 이벤트는 jQuery 버전 1.8 이후로 더 이상 사용되지 않습니다 . 로드 이벤트가 jQuery 3.0에서 제거되었습니다. 대신 on 메서드를 사용하고 JavaScript로드 이벤트를 바인딩 할 수 있습니다.

$(window).on('load', function () {
  alert("Window Loaded");
});


5

이 안에 실행하려는 코드를 작성하십시오. 문서가 준비되면이 작업이 실행됩니다.

$(document).ready(function() { 

});
당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.