[javascript] 제거가 발생하기 전에 jQuery slideUp (). remove ()가 slideUp 애니메이션을 표시하지 않는 것 같습니다.
나는이 자바 스크립트 줄을 가지고 있고 내가보고있는 동작은 selectedLi
“미끄러지는”없이 즉시 사라진다 는 것이다 . 이것은 내가 예상했던 동작이 아닙니다.
selectedLi
슬라이드가 제거되기 전에 위로 올라가 도록하려면 어떻게해야 합니까?
selectedLi.slideUp("normal").remove();
답변
slideUp에 콜백 인수에 remove 호출을 넣어 문제를 해결할 수 있을까요?
예 :
selectedLi.slideUp("normal", function() { $(this).remove(); } );
답변
좀 더 명확해야합니다. “이것”(내가 작동하는 것에 동의 함)을 말하는 것보다 다음과 같이해야합니다.
$("#yourdiv").slideUp(1000, function() {
$(this).remove();
});
답변
가장 간단한 방법은 다음 예제와 같이 다른 사람들이 말한 것과 같은 매개 변수로 slideUp 내부의 “remove ()”함수를 호출하는 것입니다.
$("#yourdiv").slideUp("normal", function() {
$(this).remove();
});
slideUp이 끝나기 전에 remove ()가 실행되지 않도록 익명 function () 내에서 호출해야합니다. 또 다른 동일한 방법은 jQuery 함수 “promise ()”를 사용하는 것입니다. 나 같은 자명 한 코드를 좋아하는 사람들에게 더 좋습니다.)
$("#yourdiv").slideUp("normal").promise().done(function() {
$(this).remove();
});
답변
promise를 사용하면 여러 애니메이션이 완료 될 때까지 기다릴 수도 있습니다. 예 :
selectedLi.slideUp({duration: 5000, queue: false})
.fadeOut({duration: 3000, queue: false})
.promise().done(function() {
selectedLi.remove()
})
답변
selectedLi.slideUp(200, this.remove);