работают ли jQuery .first() и .last() по-разному?

#jquery #navigation #slideshow #addclass #removeclass

#jquery #навигация #слайд-шоу #addclass #removeclass

Вопрос:

Итак, я создаю простой элемент управления слайд-шоу с помощью этой разметки:

 <div class="previous"> </div>
<div class="next"> </div>
<div class="gallery"> </div>
    <div class="image-0"> </div>
    <div class="image-1"> </div>
    <div class="image-2"> </div>
    <div class="image-3 active"> </div>
    <div class="image-8"> </div>
    <div class="image-9"> </div>
    <div class="image-10"> </div>
    <div class="image-11"> </div>
</div>
  

и я пытаюсь перемещаться с помощью jQuery следующим образом:

 $('.next').click(function() {

    $('.active').next().addClass('active');
    $('.active').first().removeClass('active');


  });
$('.previous').click(function() {

    $('.active').prev().addClass('active');
    $('.active').last().removeClass('active');

});
  

Итак, первый блок jQuery работает как ожидалось, сначала присваивая active класс следующему div, а затем удаляя его из первого. Второй блок должен просто сделать это наоборот, но is не удаляет класс из последнего элемента после добавления его к предыдущему.

Я подхожу к этой проблеме не с той стороны? Или функции first() и last() просто работают по-разному? Из того, что я мог сказать из документов jquery, это должно работать.

Комментарии:

1. Ваш код работает для меня, как и ожидалось jsfiddle.net/GYbRv

2. Хотя в коде есть ошибка границы, код работает нормально jsfiddle.net/6vWx6

3. Спасибо, liho1eye и amit_g. Но что такое ошибка границы?

Ответ №1:

Я создал jsfiddle с вашим кодом, и он отлично работает: http://jsfiddle.net/K5vN4 /

(используйте Firebug или аналогичный для проверки области «Результат» скрипки.)

Комментарии:

1. Это работает на jsfiddle (только что узнал об этом, действительно круто!), Так что моя проблема в другом. Спасибо!