2012-01-16 4 views
2

AJAX 요청을하고 $(document).ready()에 의해 설정된 모든 함수를 호출하고자하는 경우. 내가 어떻게 해?손으로 jQuery document.ready 함수 호출하기

function startup() { 

    // All your functions in here. 

} 

$(document).ready(startup); 

을 그리고 당신의 AJAX 요청이 완료된 후 :

startup(); 
+0

정답을 표시하십시오. – Jeffrey

답변

3

가장 쉬운 방법은 공유 기능을 사용하는 것입니다 다음과 같이 생성 :

$(document).ready(function() { 
    $(document).delegate('.my-button', 'click', function() { }); 
}); 

이 코드를 사용하여, 모든 .my-button 클릭에 관계없이 버튼을 DOMReady에 따라 당신의 DOM에 존재 여부, 사용자 정의 함수에 의해 처리됩니다. 즉, $('#close-parent').delegate$(document).delegate 이상, $(document).on('click', .my-button', function() { });

  • 가 넓은 동안 좁은 상황을 고향 :

    • $(document).ready(function() { ... });$(function() { ... });
    • 당신이 jQuery를 1.7+ 사용하는 경우로 최소화 .on.delegate을 통해 선호 될 수 있음을

  • 6
    $(document).ready(); 
    

    감사합니다 나쁜 연습 IMHO 될) setup라는 함수를 만들어 모든 리스너 등을 설정하고 다시 적용해야 할 때이 함수를 호출하십시오.

    당신이 청중을 다시 할당하는 데 사용하는 경우 당신은 아마 그들이있어 전에 을 할당 멀리 얻을 수있을 것

    $(document).ready(function() { 
        setup(); 
    }); 
    
    $.post('/', {}, function() { 
        setup(); 
    }, 'json'); 
    

    그러나 :

    +0

    나는 그것을 생각한다. 나는이 조합이 마음에 든다. 담당자에게 내 의견을 어떻게 보내야 할지를 고민해야한다.) – musefan

    +6

    'startup'에 대한 참조를'ready'에 전달해야합니다. 현재'startup'의 반환 값을 전달하고 있습니다. –

    0

    를 대신 손으로 document.ready를 트리거링 (그래도 문제가 해결되지 않으면, 이것을 시도

    +0

    고맙습니다. 물론 거기에 포함 된 여러 개의 js 파일과 $()에 대한 여러 호출이 있습니다. 따라서 시작 함수로 분리하는 데 시간이 걸릴 것입니다 ... – idm

    +0

    내 마음에 오는 것은 " 설치 함수 배열 "을 실행하는 데 필요한 각 함수를 추가 할 수 있습니다. 설치 함수에서이 배열을 반복하고 각 함수를 실행하면 해당 함수가 실행됩니까? –

    관련 문제