Использование функции .delay () перед манипулированием .css () в jQuery - PullRequest
0 голосов
/ 28 мая 2010

У меня есть это:

var $ul = $(this).children("ul");
$ul.animate({opacity: 0}, 1000);
$ul.delay(1000).css("display", "none")

Это для моего выпадающего меню, и я хочу, чтобы оно исчезло до того, как исчезнет с помощью свойства display: none; CSS.Однако, похоже, что .delay() нельзя использовать на .css();это не работает, $ul просто исчезает сразу.

Я тоже не могу использовать $ul.animate({opacity: 0, display: "none"}, 1000);.

Ответы [ 2 ]

2 голосов
/ 28 мая 2010

Как и кодека говорит, что обратный вызов является правильным подходом, но есть несколько встроенных методов быстрого доступа, которые можно использовать для дальнейшего упрощения, .fadeOut() и .hide(), вот так:

$ul.fadeOut(1000, function() {
  $(this).hide();
});
2 голосов
/ 28 мая 2010

Последний параметр animate - это обратный вызов, который вызывается после завершения анимации, поэтому вы можете использовать его следующим образом:

$ul.animate({opacity: 0}, 1000, function() { 
    $(this).css("display", "none")
});
...