fancybox - использовать элемент для подписи

Я хочу использовать fancybox на довольно большом сайте для показа всплывающих изображений, некоторые из которых требуют подписи, а некоторые нет.

Я бы предпочел помещать подписи в скрытые элементы div, поскольку это более гибко, чем использование атрибута caption. Я использовал код из 7. Настройте заголовок -> Использовать элемент вместо атрибута.

Он работает нормально, за исключением того, что на тех изображениях, где нет необходимости в заголовке и нет скрытого элемента div, fancybox затем использует атрибут заголовка из ссылки в качестве заголовка, так что вы можете получить заголовок, например, "Нажмите, чтобы увеличить" ".

Это ожидаемое поведение? Если это так, есть ли способ глобально переопределить его для сайта (не изображение за изображением).

2 ответа

Решение

В приведенном выше примере есть условие, которое оценивает наличие скрытого div элемент, который fancybox использует как title:

if (id) {
    el = $('#' + id);

    if (el.length) {
        this.title = el.html();
    }
}

Единственное, что вам нужно сделать, это добавить else заявление к тому условию, где вы можете переопределить существующий title если заголовок не существует

if (id) {
    el = $('#' + id);

    if (el.length) {
        this.title = el.html();
    }
} else {
    // don't show any title in fancybox
    this.title = "";
}

Смотрите JSFIDDLE... последнее изображение имеет title атрибут, но не соответствующий (скрытый) заголовок.

Вы можете просто добавить созданные вручную всплывающие подсказки к изображениям после факта с помощью чего-то вроде qTip или prototip

Другие вопросы по тегам