Очередность show/hide
Всем привет.
Два эффекта выполняются одновременно:
$("#div1").hide();
$("#div2").show();
Подскажите пожалуйста, можно ли сделать так, чтобы сначала выполнялась одна функция (hide) и только после завершения - вторая. |
$("#div1").hide(function() {
$("#div2").show();
});
|
Спасибо.
А возможно ли без взаимной вложенности это реализовать? |
$("#div1").hide(500);
$("#div2").delay(500).show();
В .delay() нужно указать время за которое выполняется первая анимация. |
Работает. Но задержка - это по сути имитация очередности.
Дело в том, что я не знаю заранее сколько эффектов будет в цепочке. Может быть, можно ли сделать что-нибудь, типа
$().animate({}, function(){$("#div1").hide();});
$().animate({}, function(){$("#div2").show();});
ну или выполнить что-то в этом роде... Чтобы эффекты анимации для разных объектов выполнялись друг за другом? |
Цитата:
<!DOCTYPE html>
<html>
<head>
<script src="http://code.jquery.com/jquery-latest.js"></script>
<!--
<link rel="stylesheet" type="text/css" href="tmp.css" />
-->
<style type="text/css">
</style>
<script type="text/javascript">
$(document).ready(function() {
var o=$("#test")
o.queue(function (){
$(this).hide(500).dequeue();
});
o.queue(function (){
$(this).show(500).dequeue();
});
});
</script>
</head>
<body>
<div id='test'>Test...</div>
</body>
</html>
|
$.when($('#div1').hide(), $('#div3').hide(), $('#div4').hide()).done(function() {$('#div2').show()});
|
walik, автор просил без вложения эффекты вызывать... ;)
И что это за метод when()? :-? Его описания нет в http://jquery-docs.ru/ :( |
Цитата:
Цитата:
Правильней искать в официальной документации :) |
Цитата:
Цитата:
|
| Часовой пояс GMT +3, время: 01:14. |