[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);


답변