Зациклить мои нажатия кнопок в JavaScript - PullRequest
0 голосов
/ 27 мая 2011

Это 4 кнопки, которые у меня есть на моей веб-странице ниже:

<div id ="topbar" width="80%; height:20px;" style="text-align:center">
    <input type="button" value="Click first" onclick="button.toggle();"></input>
    <input type="button" value="Click second" onclick="button2.toggle();"></input>
    <input type="button" value="Click third" onclick="button3.toggle();"></input>
    <input type="button" value="Click fourth" onclick="button4.toggle();"></input>
</div>

В настоящее время, когда страница загружена, все они включены (тумблер включен или выключен) Как включитьотключите их все, а затем зациклите их следующим образом:

1 в выключенном состоянии2 на отдыхе выкл3 на отдыхе от4 на отдыхе от1 на отдыхе выключен .... и он продолжает цикл.

Я пробовал этот подход
Что не так с этим?

setInterval ( "loop()", 2000 );

function loop ( )
{
setTimeout ( "SetLayer1()", 1000 );
}

function SetLayer1()
{
button.toggle(); //all off since all of them are on from start
button2.toggle();
button3.toggle();
button4.toggle();
}
function SetLayer2()

button.toggle(); // button 1 on rest off
//button2.toggle();
//button3.toggle();
//button4.toggle();
}
function SetLayer3()
{
button.toggle(); // button 1 off
button2.toggle(); //button 2 on
//button3.toggle();
//button4.toggle();
}
function SetLayer4()
{
//button.toggle();
button2.toggle();// button 2 off
button3.toggle();// button 3 on
//button4.toggle();
}

Ответы [ 2 ]

0 голосов
/ 27 мая 2011

Взгляните на этот подход, я думаю, он может удовлетворить ваши потребности:

http://trendmedia.com/news/infinite-rotating-images-using-jquery-javascript/

0 голосов
/ 27 мая 2011

Это элементарно, Ватсон. Рекурсия. Пример реализации может быть таким:

Создайте переменную, содержащую все ваши кнопки, и другую переменную с именем index (или что-то в этом роде). Затем создайте функцию.

Внутри этой функции вы делаете проверку. Если есть buttons[index] (индекс не больше или меньше длины всего массива вашей кнопки), сделайте index=0. Затем переключите buttons[index] и увеличьте index.

Затем вы вызываете setTimeout - первый параметр - это имя функции, а второй - количество времени, которое вы хотите подождать, прежде чем запустить его.

Оказавшись вне функции, вызовите setTimeout таким же образом.

Пример: http://jsfiddle.net/bVNx2/

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...