Последовательность выполнения функций
Здравствуйте!
У меня есть 4 функции, они выполняются одновременно, но мне нужно сделать так чтоб они выполнялись поочерёдно. Подскажите пожалуйста как это мне сделать, а то я всё время чё-то на этом спотыкаюсь. Вот функции:
function one_img(){
$('#img_1').fadeOut(2000, function(){
$(this).attr('width', 100).attr('height', 62).show(1500, function(){
$(this).effect('pulsate', 1500, function(){
$(this).attr('width', 199).attr('height', 125);
})
})
});
}
function two_img(){
$('#img_2').fadeOut(2000, function(){
$(this).attr('width', 100).attr('height', 62).show(1500, function(){
$(this).effect('pulsate', 1500, function(){
$(this).attr('width', 199).attr('height', 125);
})
})
});
}
function three_img(){
$('#img_3').fadeOut(2000, function(){
$(this).attr('width', 100).attr('height', 62).show(1500, function(){
$(this).effect('pulsate', 1500, function(){
$(this).attr('width', 199).attr('height', 125);
})
})
});
}
function for_img(){
$('#img_4').fadeOut(2000, function(){
$(this).attr('width', 100).attr('height', 62).show(1500, function(){
$(this).effect('pulsate', 1500, function(){
$(this).attr('width', 199).attr('height', 125);
})
})
});
}
one_img();
two_img();
three_img();
for_img();
Заранее большое спасибо! |
у меня опыта нет.. но callback разве не для этого?
var callbacks = $.Callbacks(); callbacks.add(one_img ); callbacks.add(two_img ); callbacks.add(three_img ); callbacks.add(for_img ); callbacks.fire(); http://api.jquery.com/jQuery.Callbacks/ Но сам с колбэками не работал, может они тут нафиг и не нужны. ) |
нее... проверил, так тоже срабатывают все 4 функции одновременно
|
Да, я тоже проверил, всё равно срабатывают все 4 одновременно, сейчас смотрю документацию по кэлбэкам, попробую разобраться, может всё-таки ответ в этой стороне.
Хотя нет, тут должен быть другой способ, посмотрю похожие темы на форуме... |
Слушай, а что за ошибка вылазивает
Метка времени: 21.06.2013 17:36:04 Ошибка: TypeError: $(...).effect is not a function Источник: test.js Строка: в твоём коде в посте строка 4, 14, 24, 34 4 ошибки... у тебя этих ошибок нет? Я из-за этой ошибки не могу протестировать ещё один вариант. |
Если закомментировать то место где у меня вылазивает ошибка (я пока стал вдаваться что за эффект ты навсил и как), то так у меня всё работает:
function one_img(){
$('#img_1').fadeOut(2000, function(){
$(this).attr('width', 100).attr('height', 62).show(1500, function(){
$(this).effect('pulsate', 1500, function(){
$(this).attr('width', 199).attr('height', 125);
two_img();
})
})
});
}
function two_img(){
$('#img_2').fadeOut(2000, function(){
$(this).attr('width', 100).attr('height', 62).show(1500, function(){
$(this).effect('pulsate', 1500, function(){
$(this).attr('width', 199).attr('height', 125);
three_img();
})
})
});
}
function three_img(){
$('#img_3').fadeOut(2000, function(){
$(this).attr('width', 100).attr('height', 62).show(1500, function(){
$(this).effect('pulsate', 1500, function(){
$(this).attr('width', 199).attr('height', 125);
for_img();
})
})
});
}
function for_img(){
$('#img_4').fadeOut(2000, function(){
$(this).attr('width', 100).attr('height', 62).show(1500, function(){
$(this).effect('pulsate', 1500, function(){
$(this).attr('width', 199).attr('height', 125);
})
})
});
}
one_img();
Осталось выяснить что я закомментировал и исправить ошибку, но смысл решения проблемы будет тот же думаю. У меня просто плагин UI наверное не установлен, вот и ошибка вылазивает. Я поправил код, так работает? |
Да, спасибо!
Всё отлично работает. А так, да если UI не установлено, ошибки вплывают. У меня она полностью почти установлена, кроме виджетов, я попутно ещё корзину разрабатываю для контента, потипу как в интернет магазине. Ещё раз спасибо вам за подсказку! |
Удачи.
Вот у меня вопрос, к спецам JS. Вот какая польза от callback? Вот пример (пусть в его случае и неверное по смыслу) топстартера: one_img(); two_img(); three_img(); for_img(); А вот аналог кода на callback: var callbacks = $.Callbacks(); callbacks.add(one_img ); callbacks.add(two_img ); callbacks.add(three_img ); callbacks.add(for_img ); callbacks.fire(); И в чём фишка callback? Я не вижу приимущество использования callback... В каких ситуациях его используют? |
удалил
|
| Часовой пояс GMT +3, время: 18:07. |