Javascript-форум (https://javascript.ru/forum/)
-   Общие вопросы Javascript (https://javascript.ru/forum/misc/)
-   -   Сделать кнопки next и prev (https://javascript.ru/forum/misc/32718-sdelat-knopki-next-i-prev.html)

bullet2018 27.10.2012 09:26

Сделать кнопки next и prev
 
Здравствуйте. Подскажите пожалуйста, как сделать кнопки вперед и назад в моей ситуации.
Есть некоторое количество строк
YtiFjPVZKHI
jl8VYsZKptA
mt4aXXmwoaQ
H5Ykd-21j_I
...

Нужны функции, которые будут поочередно проходить строки и выдавать их содержимое.

Допустим имеем две ссылки
<a href="#" onclick="next();">next</a>
<a href="#" onclick="prev();">prev</a>

Если нажмем на next то пусть будет alert(YtiFjPVZKHI);
Если еще раз нажмем next то будет уже алерт второй строки alert(jl8VYsZKptA);
Когда перешли к последней строке, то нажав на next будет алерт первой строки.
Для prev тоже самое, только переход будет назад.

Severtain 27.10.2012 10:56

Ну как вариант ваши функции должны сами просчитывать к какой записи обращаться, а кнопки уже будут вызывать функции.
И A href не самый лучший выбор, в данной ситуации.

Severtain 27.10.2012 10:59

например
var a[0]=new Array ();
a[0]= 'gfgfh';
a[1]= 'gfhtyhy';
a[2]= ' frghrjyjhyj';
a[3]= ' fghfhgh';
var i = 0;

function next ()
{
alert (a[i]);
i++;
if (i>3) i=0;
}

function next ()
{
alert (a[i]);
i--;
if (i<0) i=3;
}

bullet2018 27.10.2012 11:08

Спасибо, а как быть если не знаешь, сколько элементов в массиве?
if (i>a.lenfht) не работает (вместо if (i>3))

bullet2018 27.10.2012 11:12

И функция prev() не так как нужно работает. Она начинает с последнего назад, а нужно чтобы с текущего

var a=new Array ()
a[0]= '1'
a[1]= '2'
a[2]= ' 3'
a[3]= ' 4'
var i = 0;

function next ()
{
alert (a[i]);
i++;
if (i>3) i=0;
}


function prev ()
{
alert (a[i]);
i--;
if (i<0) i=3;
}

Severtain 27.10.2012 12:37

Отслеживайте количество элементов в массиве с помощью n.
Она и должна работать с текущего!

Severtain 27.10.2012 12:38

Или вы используете некст а потом прев!

bullet2018 27.10.2012 12:56

Цитата:

Сообщение от Severtain (Сообщение 212566)
Или вы используете некст а потом прев!

да

a_l 27.10.2012 13:18

var a= ['1', '2', '3', '4'], i=0;
function nextPrev (bool) {
  bool ? ((i === a.length-1) ? i=0 : i++) : ((i === 0) ? i=a.length-1 : i--);
  alert (a[i]);
}

nextPrev(1) для next и nextPrev(0) для prev.

bullet2018 27.10.2012 13:45



Спасибо, то что нужно


Часовой пояс GMT +3, время: 21:13.