2009-07-01 3 views
3

모든 메시지에 작성자 이름, 일부 텍스트 및 작성 날짜가 포함 된 기본 포럼을 만듭니다. 포럼이 AJAX를 통해 지속적으로 업데이트되고 즉시 작성된 새 게시물을 표시하고 싶습니다. 현재 가장 최근에 제공된 ID에서 모든 게시물을 검색하는 PHP 파일 getlatest.php?lastid=...이 있습니다. 그것은 HTML의 데이터를 반환과 같이 (당신이 된 div를 볼 수 있도록 내가 그것을 변경했습니다 유래는 그들을 밖으로 던져) : 나는 모든 몇 분을 검색 JQuery와 몇 가지 AJAX 코드가jquery에서 AJAX를 통해 검색된 div를 선택합니다.


foreach ($print as $value) 
{ 
    $readyText .= div id = $value->post_id; 
    $readyText .= $value->first_name.' '.$value->last_name.' posted the following:'. 
    $value->post_text.' The post was made about '.$time.' ago. 
    $readyText .= '/div>'; 
}

에 div에 무엇을 -

setInterval("update()", 3000); 
      function update() 
      { 
       $.get("getlatest.php", 
       { 
        id: latestmessage 
       }, 
       function(response){ 
        $("#forum_entries").prepend(response); 
        latestmessage = $.cookie('last_post_id'); //This is 
             //how I know what the latest post id is 
       }, "html"); 

나는 내 질문은 그래서

$("#somediv").effect("highlight", {}, 1500); 

처럼 (지금은 매우 인기가) 노란색 페이드 기술을 사용하여 제출 된 모든 새 게시물을 강조하고 싶었다 이 효과를 적용할까요? PHP로 다시 추가해야합니다. 모든 포럼 게시물에는 실제로 데이터베이스에있는 PK 인 div ID가 있습니다.

답변

5

앞자리를 사용하는 대신 prependTo을 사용하도록 기능을 변경하십시오. PrependTo는 앞에 추가 된 요소를 반환하고 jQuery 1.3.2를 사용하여 해당 요소에 강조를 적용 할 수 있습니다.

$.get('getlatest.php', 
     { id: latestmessage }, 
     function(response) { 
      $(response).prependTo('#forum_entries').effect('highlight',{},1500); 
      latestmessage = $.cookie('last_post_id'); 
     }, 'html'); 
1

그냥 사업부를 활성 클래스 제공 : 이미 당신이 중 하나와 함께 자바 스크립트의 약간을 배우는 정말 나을 이전 질문에 대한 답변에서 제안한 것처럼

<?php 

foreach ($print as $value) 
{ 
    $readyText .= '<div id = "' . $value->post_id . '" class="active"'; 
    $readyText .= $value->first_name.' '.$value->last_name.' posted the following:'. 
    $value->post_text.' The post was made about '.$time.' ago. 
    $readyText .= '</div>'; 
} 

?> 



setInterval("update()", 3000); 
      function update() 
       { 
       $.get("getlatest.php", 
         { 
        id: latestmessage 
       }, 
         function(response){ 
        $("#forum_entries").prepend(response); 
        latestmessage = $.cookie('last_post_id'); 
      $("div.active").effect("highlight", {}, 1500); 
      $("div.active").toggleClass("active"); 

       }, "html"); 

을 인기있는 라이브러리/프레임 워크 (위 예제에서 사용하는 jQuery 권장).

0

루프 당신이 새로운 포스트 된 div에 가짜 클래스 속성을 추가 할 수 있지만 ... 은 다음 하이라이트를 적용 할 수 있습니다 #forum_entries에 붙이는 후 귀하의 아약스 호출, removeAttr에 의해 클래스 속성을 제거 (클래스 명) Jquery에서. 다음 번 실행시 문제가 없습니다.

관련 문제