2012-04-03 3 views
1

현재 모든 링크의 페이지를 새로 고쳐야하는 번거 로움을 피하기 위해 페이지 컨텐츠가 메인 내에로드되는 설정을 작성하려고합니다.jQuery load를 사용하여 동적으로로드 된 컨텐츠가 기존 html을 지움

나는 링크가 #main에로드되도록 클릭 한 모든 링크에 대해 다음과 같이 jQuery load를 사용하고 있습니다. (분명히 완료되면 모든 링크가 아닐 것입니다.)

방문한 페이지는 제대로 작동하지만이로드 링크를 사용하면 콘텐츠가 올바르게로드되지만 은보기 소스에로드 된 HTML 만 표시합니다. 내가 여기서 뭔가 잘못하고있는거야? 콜백 내부

$("body").on("click", "a", function(){  
    $("#footer, #main").fadeOut('fast');  
    $("#main").load($(this).attr("href"), function(){  
     $("#main").fadeIn('slow'); // <====================== 
     //$(this).fadeIn('slow'); this isn't the main object! 
     $("#footer").fadeIn('slow');  
    });  

    return false 
}); 

this는 DOM 요소하지 않습니다! :

$("body").on("click", "a", function(){ 

    $("#footer, #main").fadeOut('fast'); 

    $("#main").load($(this).attr("href"), function(){ 

     $("#main, #footer").fadeIn('slow'); 

    }); 

    return false 
}); 
+1

질문 만 수정했거나 시도한 적이 있습니까? 나는 당신이 단지 "고정 된"느낌을 가졌습니다 ... – gdoron

+0

도움을 얻은 네, 나는 발견하지 못했던 문제였습니다! 위의 실제 원인은 .php 파일에있는 스크립트 태그였습니다. 항상 잊지 마세요! – Dan

+0

질문이 굵게 표시되어 있습니까? 당신은 그것이 올바르게로드되지만 소스보기에 변경 사항이 표시되지 않는다고 말합니까? 뷰 소스가로드 타임에있을 때 예상되는 동작입니다. 변경된 내용을보기 위해 firebug 또는 기타를 사용합니다. – Steen

답변

2

.load()에서이 문제를 일으키는 문제는 포함 할 파일에 <script></script> 태그가 포함되어있는 경우입니다.

이러한 것들이 자바 스크립트를 방해하므로 페이지 오류를 일으킬 수 없습니다.

문제를 방지하려면로드 된 파일 내에서 <script></script> 태그를 제거해야합니다.

1

당신은 ...
사용이 주를 페이드 아웃, 다시 그것을 퇴색하지 않았다

+0

@ Silver89. '$ (this)'는 dom 요소가 아닙니다! 그것은 아약스 객체입니다. – gdoron

관련 문제