Jquery: Incrimentation для каждого набора элементов в более чем 1 div - PullRequest
0 голосов
/ 17 марта 2010

Я делаю слайд-шоу Jquery. В нем перечислены миниатюры, которые при нажатии показывают большое изображение как наложение. Чтобы сопоставить большие пальцы с большими изображениями, я добавляю атрибуты к каждому эскизу и большому изображению. Атрибуты содержат число, которое соответствует каждому большому пальцу соответствующего большого изображения. Это работает, когда одно слайд-шоу присутствует на странице. Но я хочу, чтобы это работало, если присутствует более одного слайд-шоу.

Вот код для добавления атрибутов к большим и большим изображениям:

thumbNo = 0;
largeNo = 0;
$('.slideshow_content .thumbs img').each(function() {            
   thumbNo++;
   $(this).attr('thumbimage', thumbNo);
   $(this).attr("title", "Enter image gallery");
});
$('.slideshow_content .image_container .holder img').each(function() {   
   largeNo++;
   $(this).addClass('largeImage' + largeNo);
});

Это работает. Чтобы сделать приращение работающим, когда на странице есть два слайд-шоу, я подумал, что мог бы вставить этот код в каждую функцию ...

$('.slideshow').each(function() {
    thumbNo = 0;
    largeNo = 0;
    $(this + '.slideshow_content .thumbs img').each(function() {            
       thumbNo++;
       $(this).attr('thumbimage', thumbNo);
       $(this).attr("title", "Enter image gallery");
    });
    $(this + '.slideshow_content .image_container .holder img').each(function() {   
       largeNo++;
       $(this).addClass('largeImage' + largeNo);
    });
});

Проблема в том, что оператор инкриминирования не сбрасывается для второго div слайд-шоу (.slideshow), поэтому я получаю большие пальцы в первом div .slideshow с номерами 1,2,3 и т. Д. И большие пальцы в второй div .slideshow пронумерован как 4,5,6 и т. д. Как сделать так, чтобы числа во втором div .slideshow div сбрасывались и начинались с 1 снова?

Это очень сложно объяснить кратко. Я надеюсь, что кто-то понимает суть.

1 Ответ

1 голос
/ 17 марта 2010

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

$('.slideshow_content').each(function() {
    thumbNo = 0;
    largeNo = 0;
    $(this).find('.thumbs img').each(function() {
       $(this).attr('thumbimage', thumbNo++);
       $(this).attr("title", "Enter image gallery");
    });
    $(this).find('.image_container .holder img').each(function() {   
       $(this).addClass('largeImage' + largeNo++);
    });
});

Это устанавливает их в 0 внутри каждого .slideshow_content блока и повторяет их внутри, вместо того, чтобы устанавливать его в целом, а затем повторяет все блоки.

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