Пользовательский интерфейс Jquery: не удается анимировать удаление класса при обратном вызове анимации добавления класса - PullRequest
4 голосов
/ 06 января 2010

Когда добавляется какой-то новый элемент списка, я хочу, чтобы он «мигал», анимируя добавление класса и удаляя его после обратного вызова.

Это код:

$li.addClass('new', 1000, function() {
    $li.removeClass('new', 500);
});

Css:

#galleries-list li {
    margin-top: 10px;
    background-color: #EEFFFF;
    border: 1px solid #99FFFF;  
    }
#galleries-list li.new {
    background-color: #DDFFBB;
    border: 1px solid #99FF66; 
    }

UPDATE:

Я нашел, что пошло не так. Когда я удалил fadeOut, это работает. Понятия не имею почему. Может быть, вы можете проверить это и отправить его разработчикам jQuery UI.

$('input, img', $li).fadeOut(150, function() {
  $gallery.set($li, name, 0); //Clears html and sets gallery name and image count
  $li.addClass('create', 2000, function() { $li.removeClass('create', 500); }); 
});

Ответы [ 2 ]

5 голосов
/ 06 января 2010

Я не думаю, что у addClass и removeClass есть параметры продолжительности. http://docs.jquery.com/Addclass

Вы можете попробовать

li.addClass ("new"). Animate ({"opacity": 1}, 500, function () { li.removeClass ( "новый"); });

Это добавит «новый» класс, затем сделает паузу на полсекунды, затем удалит класс.

1 голос
/ 06 января 2010

Известная ошибка Это не работает в Safari 4, но исправлено в еще не выпущенной (на момент написания этой статьи) версии jQuery UI версии 1.8. * Извините, я удалил свой ответ, потому что ваш код полностью правильный. Однако даже их демо для addClass не работает в Safari 4, но отлично работает в Firefox 3.5.

Обновление : Вы можете увидеть ваш код, работающий здесь , если вы посетите страницу в Firefox 3.5:

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...