![Старый](/forum/images/ca_serenity/statusicon/post_old.gif)
04.04.2012, 12:30
|
Интересующийся
|
|
Регистрация: 04.04.2012
Сообщений: 13
|
|
Выполнение по порядку
$("a[rel~='showinfo']").click(function () {
var info_id = $(this).attr('id');
if($('.info_name').is(':visible'))
remove_contact();
for(i=0; i<contact_status.length; i++){
if(info_id == contact_status[i]){
create_contact(i);
}
}
$('.info_name').show("slide", {direction: "right"}, 1000);
$('.info_info').show("slide", {direction: "up"}, 1000);
});
function create_contact(id){
$('.third').append('<div class="showinfo"><h2 class="info_name">'+contact_name[id]+'</h2><span class="info_info">lol</span></div>')
}
function remove_contact() {
$('.info_name').hide("slide", {direction: "right"}, 1000);
$('.showinfo').remove();
}
В общем как выполнить скрипт в такой последовательности:
- Если есть info_name, то:
- Прячем info_name
- Удялаем info_name
- Выполняем цикл
- Если есть совпадение, добавляем
- Показываем всё
- Сначала info_name
- Затем info_info
Проблема в том, что оно тока появляется плавно, а мне надо ещё что бы и удалялось тоже плавно...
Добавлено через 7 минут
Да, callback не вариант, ибо в нескольких случаях добавляется сразу 2 дива и тогда ваще жопа...
$('.info_name').show("slide", {direction: "right"}, 1000, function(){
$('.info_info').show("slide", {direction: "up"}, 1000);
});
Тоесть info_name норм пояляется, а info_info 2 раза почему-то...
Последний раз редактировалось nonamez, 04.04.2012 в 12:42.
|
|
![Старый](/forum/images/ca_serenity/statusicon/post_old.gif)
04.04.2012, 19:32
|
Интересующийся
|
|
Регистрация: 04.04.2012
Сообщений: 13
|
|
неужеле нет никаких простых способов для реализации последовательности?
|
|
![Старый](/forum/images/ca_serenity/statusicon/post_old.gif)
04.04.2012, 22:27
|
sinistral
|
|
Регистрация: 28.03.2011
Сообщений: 5,418
|
|
Сообщение от nonamez
|
Да, callback не вариант, ибо в нескольких случаях добавляется сразу 2 дива и тогда ваще жопа...
|
Нет, callback - вариант, ибо в нескольких случая добавления нужно их учитывать, а не слепо анимировать все элементы на странице с таким классом.
$('.info_name').show("slide", {direction: "right"}, 1000, function(){
$('.info_info*!*:hidden*/!*').show("slide", {direction: "up"}, 1000);
});
|
|
![Старый](/forum/images/ca_serenity/statusicon/post_old.gif)
04.04.2012, 23:27
|
Интересующийся
|
|
Регистрация: 04.04.2012
Сообщений: 13
|
|
Сообщение от melky
|
Нет, callback - вариант, ибо в нескольких случая добавления нужно их учитывать, а не слепо анимировать все элементы на странице с таким классом.
$('.info_name').show("slide", {direction: "right"}, 1000, function(){
$('.info_info*!*:hidden*/!*').show("slide", {direction: "up"}, 1000);
});
|
Так я ремувил целый блок и создавал новый с id + i, а не просто id.
http://youtu.be/pc5RfxPGVv4
|
|
![Старый](/forum/images/ca_serenity/statusicon/post_old.gif)
04.04.2012, 23:38
|
sinistral
|
|
Регистрация: 28.03.2011
Сообщений: 5,418
|
|
это с Вашим кодом так, потому что анимации помещаются в очередь. Я Вам показал пример.
|
|
![Старый](/forum/images/ca_serenity/statusicon/post_old.gif)
05.04.2012, 00:25
|
Интересующийся
|
|
Регистрация: 04.04.2012
Сообщений: 13
|
|
Сообщение от melky
|
это с Вашим кодом так, потому что анимации помещаются в очередь. Я Вам показал пример.
|
блин, это именно тут пример с классами, а на видео можно рассмотреть, что там было всё с id=info_name+i и id=info_info+i. Я просто разные варианты реализации пробовал.
|
|
![Старый](/forum/images/ca_serenity/statusicon/post_old.gif)
05.04.2012, 00:57
|
sinistral
|
|
Регистрация: 28.03.2011
Сообщений: 5,418
|
|
у меня ошибка была ![](https://javascript.ru/forum/images/smilies/smile.gif) мозг уже спит
- сделайте на классах (одинаковых)
- фильтруйте видимые (:visible) элементы, когда необходимо что-то показать
- фильтруйте скрытые (:hidden), когда надо что-то скрыть
|
|
![Старый](/forum/images/ca_serenity/statusicon/post_old.gif)
05.04.2012, 18:59
|
Интересующийся
|
|
Регистрация: 04.04.2012
Сообщений: 13
|
|
та я с ид,, просто к ид i приписывал и всё, а вот как можно передать в каллбак функцию параметр? Ща оно у меня при помощи delay, но это не выход...
$('#info_name'+i).show("slide", {direction: "right"}, 1000, function(){
$('#info_info'+i).show('slide',{direction: "up"}, 1000)});
Внутренний i почему-то равен всегда 5 - тоесть последнему элементу массива и равен именно в калбак функции. При аппенде и первом id он нормально, а в каллбак в конце
|
|
![Старый](/forum/images/ca_serenity/statusicon/post_old.gif)
05.04.2012, 21:08
|
Интересующийся
|
|
Регистрация: 04.04.2012
Сообщений: 13
|
|
if($('.showinfo').is(':visible')){
$('.info_info').hide('slide',{direction: "up"}, 1000, function(){
$('.info_name').hide('slide', {direction: "right"}, 1000, function(){
$('.showinfo').remove();
});
});
$('.ui-effects-wrapper').remove();
}
А как вот это выполнить по порядку? - .info_info
- .info_name
- .showinfo
- .ui-effects-wrapper
- А уже потом всё остальное, тоесть оставшийся код полсе ифа.
P.S.
Цитата с этого сайта
Код:
|
Писать программы, в которых результат вызова функции приходит неизвестно когда... |
|
|
![Старый](/forum/images/ca_serenity/statusicon/post_old.gif)
05.04.2012, 23:34
|
sinistral
|
|
Регистрация: 28.03.2011
Сообщений: 5,418
|
|
$('.ui-effects-wrapper').remove();
за
$('.showinfo').remove();
|
|
|
|