проблема с облостью видимости
есть такая конструкция:
function parent () { var a1, a2 function child1 () { clearTimeout(a2); /*код выполнения*/ a1 = setTimeout(child1 (), 5000); } function child2 () { clearTimeout(a1); /*код выполнения*/ a2 = setTimeout(child2 (), 5000); } } clearTimeout() не может остановить другой, не видет его, как исправить можно? |
Вы не устанавливаете таймаут, а сразу вызываете child1 и child2.
|
а мне надо с промежутком там анимация
|
Цитата:
st = setTimeout(function () { smoothshow(); }, speed); |
czp,уберите скобки
Цитата:
|
так, а как же мне сделать, что бы одна другую функция останавливала???
|
Тот код, что вы привели - просто объявляет ф-ции. А их ещё нужно запустить... Смекаете? Где-то в ф-ции parent должно быть написано child1(), child2(). Их нужно вызвать.
|
Цитата:
----- я же весь код не вылаживал, это так что бы понять по быстрому, есле надо могу весь код выложить |
Честно говоря, не совсем понимаю, что вам нужно. Вам нужно, чтобы сначала целиком выполнилась 1-я анимация, и только потом начала выполняться вторая? Так?
|
нет, мне надо:
когда выполняется первая анимация, и есле начнется выполнятся вторая анимация, то первая должна остановиться. -- и точно так же , есле вторая выполняется, и есле начинается выполнение первой, то вторая должна остановиться |
Как-то так:
var interv1= false, interv2= false; var anim1= function() { if (interv2) { // если запущена анимация 2 clearInterval(interv2); // останавливаем её interv2= false; // ставим "флаг состояния" анимации 2 }; if (!interv1) { // если анимация 1 не запущена, это нужно для 1-го раза) interv1= setInterval(anim1); /* здесь идёт весь ваш код, все ваши повторяющиеся действия */ }; var anim1= function() {// тут всё то же самое, в принципе if (interv1) { // если запущена анимация 1 clearInterval(interv2); // останавливаем её interv2= false; // ставим "флаг состояния" анимации 1 }; if (!interv2) { // если анимация 2 не запущена, это нужно для 1-го раза) interv1= setInterval(anim2); /* здесь идёт весь ваш код, все ваши повторяющиеся действия */ }; |
ага, ход мысли понял, спасибо пошел разбираться, плюсик вам в копилку)
|
Часовой пояс GMT +3, время: 10:55. |