Как в скрипте JS прописать условие отбора элемента (Drupal 6)?

61aca584083440418a371784cfb02526.jpg

Добрый день!
Есть скрипт который добавляет класс "colorbox" и атрибут "rel" с параметром "gal" для всех фотографий которые находятся на странице чтобы они открывались через плагин Colorbox.
Скрипт:
jQuery(document).ready(function($) {

$("a[href$='.jpeg'], a[href$='.jpg'], a[href$='.JPEG'], a[href$='.JPG']")
.addClass('colorbox')
.attr('rel', 'gal')
.colorbox();

})(jQuery);

Еще есть код который вызывает этот скрипт, он прописан в файле темы "template.php".
Код:
drupal_add_js('themes/zen/js/colorbox-open.js');

Еще есть модуль Image resize filter, который в принципе делает почти тоже самое. Но есть одна проблема, оба способа прописывают класс и атрибут всем фотографиям не зависимо от их количества на странице. Поэтому если в двух блоках есть страницы с фотографиями, то они все будут объединены в одну галерею.

Вопрос в том, как прописать условие для того чтобы атрибут присваивался только в том случае если фотографий на странице больше одной.
  • Вопрос задан
  • 2557 просмотров
Решения вопроса 2
@eandr_67
web-программист (*AMP, Go, JavaScript, вёрстка).
var tmp=$("a[href$='.jpeg'], a[href$='.jpg'], a[href$='.JPEG'], a[href$='.JPG']");
if(tmp.length>1){
  tmp.addClass('colorbox').attr('rel', 'gal').colorbox();
}
Ответ написан
AlexFreem
@AlexFreem
addicted
А зачем вы атрибут rel приписываете скриптом?
Есть замечательный модуль Image Resize Filter
В его настройках можно установить что если изображение добавленное через WYSIWYG было масштабированно - приписывать к нему любой класс или/и атрибут rel.

В итоге весь код скрипта у вас сведётся к следующему:
jQuery('a[rel="gal"]').colorbox();

Сам использую в связке с nivoLightbox и Lightbox2. Никаких нареканий.
Плюсом такого метода явлется преобработка изображений на уровне php. В вашем же случае это постобработка на уровне javascript.
Ответ написан
Комментировать
Пригласить эксперта
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы