2011-09-08 3 views
0

내가 HTML 스 니펫에 결과를 렌더링하는 스크립트를 호출하는 jQuery.ajax를 사용하고 자바 스크립트 부모를 상속하고 그것은, 사업부에이 같은로드 방법 :jQuery를 아약스와

jQuery.ajax({type:'POST',data:{'var': '1'}, url:'/some/script',success:function(data,textStatus){jQuery('#myDiv').html(data);}}); 

스크립트가 실행하고 페이지를 내 div에로드됩니다. 내가 가지고있는 문제/딜레마는 상위 페이지 (아약스로부터 호출 한 페이지)가 헤더에 포함 된 몇 개의 jquery 스크립트를 가지고 있으며, 페이지로드시에 실행됩니다 (예 : 날짜 선택기, labelify, ui.selectmenu 선택 상자 및 몇 가지 더. 그러나 일단 내 자식 페이지가로드되면 해당 스크립트에 의해 적용된 스타일/기능을 상속받지 않습니다. 이 스크립트는 부모 페이지로드시 실행되고 하위 페이지가로드 될 때 트리거되지 않기 때문에 이해합니다. 질문 :

  1. 자식 HTML 페이지는 자신의 헤더와 본문을 가진 완전한 HTML 페이지 수와 같은 스크립트가 부모에 포함되지 않은 경우에도 모든 필요한 스크립트를 포함해야한다. 그것은 완전한 HTML 페이지를 안한다면, 나는 자식 페이지의 본문에 어쨌든 (HTML 코드)

  2. 을 내 모든 스크립트를 포함해야한다

  3. (오른쪽하지 자식 페이지는 단지 HTML 코드입니다) 하위로드시 모든 jquery 상위 스크립트를 트리거하는 쉬운 방법이 있습니까? 근본적으로 부모를위한 페이지로드 위조.

다른 아이디어가 있습니까?

감사합니다. 당신이 당신의 포함 된 파일 내부 문서 온로드에서 실행하려는 스크립트를 넣으면

+1

Ajax를 통해 나머지 HTML 코드를로드해야하는 경우 왜 이러한 모든 스크립트를 페이지로드시에 실행합니까?Ajax 응답 후에 스크립트를 실행하는 것이 더 합리적 일 것입니다 ... –

답변

2

, 그것은 내용이로드 될 때이있는 새 파일을 만듭니다. 부모의 스크립트

를 실행하고로드합니다 보시려면 부모 파일로 보내주십시오. 자식 파일에 jQuery 스크립트를 포함시키지 마십시오. $ (document)에 대한 액세스 권한이 없습니다.

<script type="text/javascript"> 
$(document).ready(function(){ 
    alert('a'); 
}); 
</script> 

은 아마 부모에 모든 것을 수행하는 함수를 작성해야합니다, 부모로부터 어떤 실행 부하 코드가 하위에 적용 할 때, 그리고 그것을 아이가 그것을 호출 할 수 있도록하려면 .에서로드

현재 부모 :

<script> 
    $(document).ready(function(){ doSomething(); doSomethingElse(); }); 
</script> 

이된다 ...에서 다음

<script> 
    $(document).ready(function(){ loaded(); }); 
    function loaded() { doSomething(); doSomethingElse(); } 
</script> 

자녀는 $(document).ready(function(){ loaded(); });라고도 부릅니다.

0

이벤트 처리기를 찾으려면 jQuery.live을 시도하십시오. AJAX 자마자 이제

function doLayout(focus) 
{ 
$(focus).find(".datepicker").datepicker(); 
} 

당신이 ("#의 myDiv")에서 doLayout를 호출 할 수 있습니다 : 당신이

$(".datepicker").datepicker(); 

처럼, 온로드에서 일반적인 UI 물건이있는 경우 특정 초점 기능으로 포장하려고 콘텐츠가로드되었습니다. $ .ready doLayout ("body")를 사용하십시오.