JQuery slideUp (). remove (), похоже, не показывает анимацию slideUp до того, как произойдет удаление

У меня есть эта строка JavaScript, и поведение, которое я наблюдаю, заключается в том, что selectedLi мгновенно исчезает без "скольжения вверх". Это не то поведение, которого я ожидал.

Что мне делать, чтобы selectedLi выдвинулся перед тем, как его вынуть?

selectedLi.slideUp("normal").remove();
Поведение ключевого слова "this" в стрелочной функции в сравнении с нормальной функцией
Поведение ключевого слова "this" в стрелочной функции в сравнении с нормальной функцией
В JavaScript одним из самых запутанных понятий является поведение ключевого слова "this" в стрелочной и обычной функциях.
Концепция локализации и ее применение в приложениях React ⚡️
Концепция локализации и ее применение в приложениях React ⚡️
Локализация - это процесс адаптации приложения к различным языкам и культурным требованиям. Это позволяет пользователям получить опыт, соответствующий...
Улучшение производительности загрузки с помощью Google Tag Manager и атрибута Defer
Улучшение производительности загрузки с помощью Google Tag Manager и атрибута Defer
В настоящее время производительность загрузки веб-сайта имеет решающее значение не только для удобства пользователей, но и для ранжирования в...
Безумие обратных вызовов в javascript [JS]
Безумие обратных вызовов в javascript [JS]
Здравствуйте! Юный падаван 🚀. Присоединяйся ко мне, чтобы разобраться в одной из самых запутанных концепций, когда вы начинаете изучать мир...
Система управления парковками с использованием HTML, CSS и JavaScript
Система управления парковками с использованием HTML, CSS и JavaScript
Веб-сайт по управлению парковками был создан с использованием HTML, CSS и JavaScript. Это простой сайт, ничего вычурного. Основная цель -...
JavaScript Вопросы с множественным выбором и ответы
JavaScript Вопросы с множественным выбором и ответы
Если вы ищете платформу, которая предоставляет вам бесплатный тест JavaScript MCQ (Multiple Choice Questions With Answers) для оценки ваших знаний,...
97
0
54 295
5
Перейти к ответу Данный вопрос помечен как решенный

Ответы 5

Ответ принят как подходящий

Можно ли это исправить, поместив вызов remove в аргумент обратного вызова для slideUp?

например

selectedLi.slideUp("normal", function() { $(this).remove(); } );

Обратите внимание, что "медленная" и "быстрая" - единственные скорости. Другие скорости должны быть либо в миллисекундах, либо по умолчанию они будут равны 400. keyframesandcode.com/resources/javascript/deconstructed/jque‌ ry /…

bendman 24.01.2014 16:17
selectedLi.slideUp(200, this.remove);

Я тестировал - не удаляет элемент после скольжения вверх.

Konstantin Spirin 13.05.2010 12:43

Фактически скрывает элемент, но не удаляет его из DOM.

andreszs 03.02.2015 07:11

Вы должны быть более точными: вместо того, чтобы говорить «это» (которое, я согласен, должно работать), вам следует сделать следующее:

$("#yourdiv").slideUp(1000, function() {
    $(this).remove();
});

ИЗВИНЕНИЕ = я забыл удалить свой идентификатор, должно быть: $ ('# yourdiv'). SlideUp (1000, function () {$ ('# yourdiv'). Remove ();});

Blake 27.01.2011 16:49

Использование $ (this) вместо $ ("# yourdiv") более оптимизировано, поскольку jQuery не нужно искать узел.

MaximeBernard 27.07.2013 20:52

Использование $("#yourdiv") вместо $(this) полностью избыточно, и не поэтому этот код решает проблему OP. Этот код устраняет проблему, поскольку использует обратный вызов complete.

Gavin 03.08.2015 19:08

Самый простой способ - вызвать функцию «remove ()» внутри slideUp в качестве параметра, как говорили другие, как в этом примере:

$("#yourdiv").slideUp("normal", function() {
    $(this).remove();
});

Его необходимо вызывать внутри анонимной функции (), чтобы предотвратить выполнение remove () до завершения slideUp. Другой равноправный способ - использовать функцию jQuery «обещание ()». Лучше для тех, кто любит понятный код, как я;)

$("#yourdiv").slideUp("normal").promise().done(function() {
    $(this).remove();
});

Используя обещания, вы также можете дождаться завершения нескольких анимаций, например:

selectedLi.slideUp({duration: 5000, queue: false})
.fadeOut({duration: 3000, queue: false})
.promise().done(function() {
    selectedLi.remove()
})

Другие вопросы по теме