Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате |
Форум программистов > JavaScript: Общие вопросы > Рекурсия в setInterval |
Автор: platedz1 2.2.2013, 23:05 | ||
Нужно последовательно выполнить одну функцию с разными параметрами Код примерно такой
Соответственно, после того, как setint выполнилось с id_1, нужно его выполнить c id_2, затем с id_3, а потом опять с id_1 и так по кругу. Подскажите, пожалуйста, как это можно сделать? |
Автор: skyboy 3.2.2013, 00:27 |
вариант 1. три интервала — каждый со своими данными и интервалом ×3. вариант хорош, если количество фиксировано, а данные, уникальные для каждого прохода — неизменны. вариант 2. вынести переменную за пределы инетрвальной функции и менять её. насчет того, как этот параметр передавать извне — передавать массив. а в интервальной функции элементы массива местами менять. |
Автор: Arantir 3.2.2013, 00:28 | ||
Анимацию делаете? Лучше воспользуйтесь http://jquery.com/, это такой набор готовых скриптов. Есть расширение jQueryUI практически со всеми воображаемыми видами анимации. И последовательный вызов там сделать очень просто, функция .animate принимает в качестве аргумента callback (т.е. функцию, которая будет в вызвана по завершению анимации). Ну а зациклить по набору элементов несложно. Пример не претендует на элегантность, но суть отображает:
|
Автор: platedz1 3.2.2013, 01:07 |
Спасибо, в целом Вышло. Буду теперь пробовать передать параметры через объект. |
Автор: platedz1 3.2.2013, 01:35 |
Подскажите, пожалуйста, а как бы мне теперь вместо var elements = ["#id_1", "#id_2", "#id_3"]; передать объект var elem = object_num Т.е. у меня получается var object_1 = {a: "a1",b:"b1"} var object_2 = {a: "a2",b:"b2"} var object_3 = {a: "a3",b:"b3"} |
Автор: Arantir 3.2.2013, 03:04 | ||||||||
platedz1, знаете, чтобы разбираться в JS достаточно знать всего несколько важных моментов. Но почему-то большинство это упускает. В JS все и так есть объекты. По-этому функции можно совать прямо в аргументы и всякое такое... Почти все - это просто объекты или массивы объектов.
Например
Вы и так можете передавать все это в функцию без заморочек, в JS нету строгой типизации. Функция схавает как число, так и другую функцию, массив, и т.д. Объект вы передаете без проблем. Нужно всего лишь правильно им потом воспользоваться (ну то есть вы же не станете умножать между собой массивы или пробовать вызывать число, как функцию).
|
Автор: platedz1 3.2.2013, 03:29 |
Спасибо, большое не знал, что так можно. |