Не показывать фото дважды в Prettyphoto

у меня есть сложная проблема, которую я не могу решить. Я использую jquery.prettyphoto.js для отображения набора изображений в «лайтбоксе».

Первой фотографией в этом наборе является «AvatarPhoto», и она отображается на странице дважды. Сначала сверху, стоя отдельно, а также в слайдере со всеми остальными фотографиями. Оба ссылаются на одну и ту же картинку в одной галерее.

Взгляните на это: http://jsfiddle.net/wtZLY/

хорошо, я решил это, основываясь на ответе халфера, просто дал первой ссылке «allFotos» идентификатор:

    $('#profilePicture').click(function() {
    $('#foto_0').click();
    });

но мне интересно, не могу ли я использовать API prettyphoto

$.prettyPhoto.open()

но похоже, что у меня нет возможности просто открыть prettyPhoto[gallery1] внизу на странице. Мне пришлось бы передавать все изображения и заголовки в виде массива, и в моем случае это было бы тяжело повторяться.


person john Smith    schedule 29.01.2013    source источник
comment
Можете ли вы опубликовать то, что у вас есть, на тестовом сайте, таком как JSFiddle или подобном? Я думаю, что проблема слишком специфична, чтобы определить причину только по описанию.   -  person halfer    schedule 29.01.2013
comment
да, я только что нашел время, чтобы возиться с ним. jsfiddle.net/wtZLY   -  person john Smith    schedule 30.01.2013
comment
В каком месте вы хотите, чтобы это было показано? вверху или в галерее?   -  person glomad    schedule 30.01.2013


Ответы (1)


Ваш селектор работает с этим атрибутом:

data-rel="prettyPhoto[gallery1]"

Если вы не собираетесь добавлять первое изображение в галерею, удалите атрибут data-rel из этого изображения, и оно заработает.

Лично я бы использовал для этого стандартные теги/идентификаторы/классы. В вашем JS вы можете использовать это:

$("#allpictures a").prettyPhoto();

Это выберет все ссылки, которые являются потомками элемента allpictures.

Дополнение: если вы хотите открыть галерею, используя изображение своего профиля, то я предлагаю вам использовать вышеописанное для элементов галереи, но иметь специальный обработчик кликов для профиля. Настройте id для каждого изображения, чтобы изображение профиля можно было использовать для определения копии галереи. Например, вы можете использовать profile_123 и gallery_123.

Это позволит вам добавить обработчик кликов к изображению профиля, получить id копии галереи и вызвать событие клика для этого элемента.

person halfer    schedule 29.01.2013
comment
а нет, я использовал этот селектор, потому что начальное значение prettyphoto было rel, а rel не является допустимым атрибутом для тега img, а data-rel является. И я хотел бы открыть одну и ту же галерею обоими способами: щелкнув profilPicture и все изображения, но в лайтбоксе показать ее не дважды. - person john Smith; 30.01.2013
comment
Извините, не могли бы вы немного пояснить свое первое предложение? Все ли ваши изображения должны использовать этот атрибут? - person halfer; 30.01.2013
comment
да, я попробую это, вы получите обратную связь - person john Smith; 30.01.2013
comment
да, поднять событие щелчка первого якоря AllPhotos удалось, и это было очень просто, спасибо за потраченное время :D - person john Smith; 30.01.2013