2014-02-13 2 views
0

페이지 새로 고침없이 게시 된 댓글 표시.주석 달기 시스템 - PHP를 사용하는 주석 처리 시스템에서 작동하는

모든 기능, 삽입, 유효성 검사 및 아약스 호출.

현재 페이지 콘텐츠를 보유하고있는 컨테이너에서 .load()를하고 있습니다.

그러나 댓글을 다시 게시하려고 할 때 문제가 발생합니다. javascript는 작동하지 않으며 주석과 관련된 일부 javascript 함수는 작동하지 않으며 작은 것들도 있습니다.

사용자가 게시물을 올릴 때마다 어떻게 코멘트를 처리해야합니까?

예를 들어 페이스 북에서와 마찬가지로, 댓글을 게시하면 새로운 댓글이 바로 아래에 배치됩니다.

내가 .append()를 사용하고 목록에 새 설명을 추가한다고 생각할 수있는 유일한 것.

내 PHP 페이지에서 사용자 이름, 주석, 사용자 프로필 그림 등의 JSON 반환을 설정 한 다음 모든 데이터를 다시 추가 할 수 있습니까?

그렇지 않으면 단순히 ajax 호출 성공 후 div 컨테이너를 다시로드하는 더 나은 방법이 있습니까?

감사합니다. 내가하는 일은 ...하지만 올바른 방법으로 학습하고 싶습니다.

크레이그.

+1

코드는 어디에 있습니까? – Subin

+0

실행하려는 javascript가'.load()'에 의해로드되어 있습니까? 그렇다면 스크립트로 가져온 자바 스크립트가 페이지에 바인드되지 않습니다. – Newbi3

답변

0

$ .ajax를 사용하여 새 주석을로드하고 .append() 또는 prepend()를 사용하여 컨테이너에 새 주석을 삽입 할 수 있습니다. 함수에서 호출을 감싸는 경우 새로운 주석을 확인하기 위해 함수를 계속 호출 할 수 있습니다 (예 : 2 초마다).

정확하게 기억한다면 .load()는 브라우저 새로 고침 후 요소가 준비되었을 때만 실행됩니다.

어떤 것이 작동하지 않습니까? 이벤트와 데이터는 AJAX 호출이 성공한 후에 바인딩되어야 함을 기억하십시오. 의미는 페이지가로드되었을 때 이벤트를 링크에 바인딩하면 분명히 여전히 유효합니다. 그러나 나중에 링크를 삽입하면 이벤트가 없습니다.

은 내가 일반적으로하는 것은이 같은 것입니다 :

$.ajax({ 
    url: 'ajax.php', 
    data: { 'parameters': 'yada yada' }, 
    dataType: 'json', 
    success: function(data) { 
     $('.links').unbind().click(function() { alert('hello!'); }); 
    } 
}); 

.unbind()에 대한 이유는 당신이 그렇지 않으면 기존의 링크를 여러 이벤트를 결합하는 것입니다 - 당신은 원하지 않는다; -)