2016-02-25 4 views
0

Не могли бы вы взглянуть на эту демонстрационную версию и сообщить мне, как я могу зациклиться на другой элемент sectorArray[] и зарегистрировать элемент при срабатывании нажатием кнопки? Прямо сейчас у меня проблема со стартом минус или плюс и возврат к началу, когда функция достигает последнего элемента!Ошибка при перемещении по массиву на элементы журнала по щелчку

var sectorArray = ["a", "b", "c"]; 
 
var counter = 0; 
 
$(".plus").on("click", function(e) { 
 
    console.log(sectorArray[counter]); 
 
    counter++; 
 
}); 
 
$(".minus").on("click", function(e) { 
 
    counter--; 
 
    console.log(sectorArray[counter]); 
 

 
});
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script> 
 
    <button type="button" class="minus">-</button> 
 
    <button type="button" class="plus" >+</button>

+0

Так вы хотите, чтобы на первой консоли .log be a, и если вы нажмете плюс вы получите b, если вы нажмете плюс снова, вы получите c, а если вы на c и нажмите минус, вы получите b, и снова вы получаете? –

ответ

1

working fiddle

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

var sectorArray = ["a", "b", "c"]; 
var counter = -1; // start at -1 because we inc/dec before we log 

$(".plus").on("click", function(e) { 
    // Increment and check if counter is out of bounds 
    if(++counter >= sectorArray.length){ 
    counter = 0; 
    } 
    console.log(sectorArray[counter]); 
}); 

$(".minus").on("click", function(e) { 
    // Decrement and check if counter is out of bounds 
    if(--counter < 0){ 
    counter = sectorArray.length - 1; 
    } 
    console.log(sectorArray[counter]); 
}); 
+0

Привет, Ник и спасибо за ответ, но как получилось, что плюс, начинающийся с 'b'? – Behseini

+0

@Behseini Это потому, что вы увеличиваете счетчик перед тем, как проверить его в первый раз. Легкое исправление заключается в перемещении 'counter ++' или 'counter -' под 'console.log'. Я обновлю свой ответ с этим изменением! –

+0

@Behseini Смотрите мой обновленный ответ сейчас - эта проблема должна быть решена :) –

Смежные вопросы