Последовательность выполнения функций
Здравствуйте!
У меня есть 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, время: 14:04. |