2013-05-15 1 views
0

jquery에서 e.preventDefault()를 사용하여 html 페이지를 a. html 페이지에는 서버에서 데이터를 가져올 Ajax 액션이있다. 페이지가 표시되지만 Ajax 데이터는 표시되지 않습니다. 아약스가 데이터를 콜백하기 전에 페이지가 표시되는 것 같습니다. 그러나 e.preventDefault를 사용하면 링크를 클릭하면 페이지가 열리고 새 페이지는 아약스 페이지에서 가져온 모든 데이터와 함께 작동합니다. 로드 페이지를 지연시키는 모든 솔루션이나 도움.e.preventDefault는 Ajax 데이터가없는 빈 페이지를로드합니다.

$(document).ready(function() { 
    $('a').click(function (e) {      
     $("#content").load($(this).attr("href"));    
     e.preventDefault();  
    });    
}); 
+3

당신은' .preventDefault();'먼저로드 메서드를 누른 다음 ??? –

+0

그 결과 .. 같은 결과. – user2386031

답변

0

가장 큰 원인은로드하는 페이지가 이벤트 처리기의 일부로 ajax 요청을 실행한다는 것입니다. 예 :

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

그러나 이벤트는 아약스를 통해로드 할 때 실행되지 않습니다. 문서 준비 이벤트는 이미 발생했으며 한 번만 발생합니다.

자바 스크립트를 일반적인 장소에 추가하여 두 페이지에 모두 포함시켜야합니다. 하나는 여전히 document.ready 또는 지금까지 사용했던 방법으로 메소드를 실행하는 반면, html을 #content에 삽입하면 다른 메소드에서 실행하게됩니다

관련 문제