2012-07-26 2 views
2

의견 목록이 있습니다. 사용자가 새 댓글을 제출하면 새로 추가 된 댓글을 댓글 추가 양식 앞에 표시하고 싶습니다. 지금까지 작업 해 보았지만, 애니메이션이되기를 바랍니다.jquery .before() 및 .slideDown() 또는 기간을 결합합니다.

더 구체적으로 말하면, 그냥 표시하는 대신 .before() 액션을 애니메이션/슬라이드로 설정하려고합니다. 나는 현재 표시를 위해 일하는 코드를 따르고있다.

el.find(".add-comment").before(new_comment); 

jquery .before()을 살펴 보았고 duration 매개 변수가 표시되지 않습니다. 나는 또한 이것을 시도했지만 작동하지 않습니다 :

el.find(".add-comment").before(new_comment).slideDown(); 

어떤 제안이 있습니까?

답변

3

insertBefore() 인스턴트 메시지 before()을 사용하려고 했습니까? 그들은 같은 작업을하지만 논리는 반대입니다. 그런 식으로 코드 조각을 삽입하기 전에 slideDown() 함수를 호출 할 수 있습니다. 그러나 삽입 작업을 수행하기 전에 삽입 된 코드를 숨기는 것이 좋습니다. 귀하의 경우에는

: 나는 (그것이 HTML 문자열을 사용 $(new_comment) 대신 경우) new_comment JQuery와 개체가 이미 있다고 가정

new_comment.hide().insertBefore(el.find(".add-comment")).slideDown(); 

.

그러나 때때로 코드를 추가하면 코드가 작동하지 않습니다. 동시에 li 개의 요소를 여러 개 추가하면 나에게 일어났습니다. 이 경우 자동으로 창 아래로 내려 가야하는 새 코드를 추가하기 때문에 fadeIn()을 사용하여 약간의 트릭을 사용하는 것이 좋습니다. 윈도우가 슬라이드 다운 새로운 코드의 삽입에 의한 경우 이와

new_comment.hide().insertBefore(el.find(".add-comment")).fadeIn('slow'); 

는 상기 fadeIn 기능은 이러한 "slideDown"효과를 제공한다. 나는 그것이 약간 퇴색 한 것을 안다.