2012-12-10 2 views
0

좋아, gents, 여기에 문제가있다. 내 웹 사이트에서 자동로드 (아약스 사용)를 수행하여 DOM로드 이후 게시 된 새로운 코멘트를로드하려고합니다. 스크립트는 새로운 코멘트가 ajax 호출로로드 될 때 제대로 작동합니다. 그러나 jquery와 함께 fadeIn에 대한 호출의 응답을 원합니다. 나는 다른 곳 에서이 코드 $(response).hide().prependTo('.ideas').fadeIn('slow');을 사용하고, 그것은 잘 작동합니다. 나는 .on() 메서드를 사용하기 때문에 다른 곳에서 작동한다고 생각하지만, 사용자 작업을 사용하여 이벤트를 발생시키지 않기 때문에 여기서는 사용할 수 없습니다.fadeIn livequery를 사용하여 응답, setInterval이 페이딩되지 않는 자동 AJAX 호출

setInterval(function() {

if (window.location.pathname == "/" || window.location.pathname == "/appreciate" || window.location.pathname == "/appreciate#") { 
     var first_message = $('.messages > div.message_wrapper:first').attr('id'); 
     var pathname = window.location.pathname; 
     $.ajax({ 
      type: "POST", 
      url: "/update_comments.php", 
      data: {first_message: first_message, pathname: pathname}, 
      success: function (response) { 
       $(response).hide().prependTo('.messages').fadeIn(2000); 
      } 
     }); 

    } else { 
     var first_idea = $('.ideas > div.message_wrapper:first').attr('id'); 
     $.ajax({ 
      type: "POST", 
      url: "/update_comments.php", 
      data: {first_idea: first_idea, pathname: pathname}, 
      success: function (response) { 
       $(response).hide().prependTo('.ideas').fadeIn(2000); 
      } 
     }); 
    } 

}, 20000); 

어떤 생각 :

여기에 현재 코드는? 저는 livequery를 사용하는 것을 고려했습니다. livequery가 찾는 jquery 메소드를 정의 할 수있는 곳을 보았습니다. 그래서 이것을 코드에 넣었습니다. $.livequery.registerPlugin('append', 'prepend', 'after', 'before', 'wrap', 'attr', 'removeAttr', 'addClass', 'removeClass', 'toggleClass', 'empty', 'remove', 'appendTo', 'prependTo');하지만 아무 것도하지 않았습니다.

답변

0

좋아 ... 나는 그것을 해결했다. .messages DIV에 success:에 livequery을 추가함으로써

$('.messages').livequery(function() { 
    $(response).hide().prependTo('.messages').fadeIn(2000); 
}); 

, 나는 fadeIn 효과를 추가 할 수 있었다.

관련 문제