Я хотел бы знать, как добавить в fancybox больше, чем заголовок (например, подпись или ссылку). Я знаю, что если я добавлю заголовок = "Бла", он появится в поле. Но если я добавлю что-то вроде caption = "Blabla" к моей ссылке на изображение, какой код мне нужно иметь в jquery.fancybox.js, чтобы вытащить этот тег субтитров?
Fancybox: Добавить надпись и другие вещи
Ответ 1
Вам не нужно связываться с исходным файлом jquery.fancybox.js, так как вы можете добавить этот параметр в свой собственный настраиваемый fancybox script.
Если вы используете HTML5 DOCTYPE, вы можете использовать атрибут data-* для заголовка, чтобы вы могли иметь этот HTML-код:
<a class="fancybox" href="images/01.jpg" data-caption="This is the caption" >Open fancybox</a>
Затем установите свой собственный fancybox script и получите data-caption с помощью обратного вызова beforeShow, например
$(document).ready(function() {
$('.fancybox').fancybox({
beforeShow : function(){
this.title = $(this.element).data("caption");
}
});
}); // ready
Это приведет к переопределению title и вместо этого используйте data-caption.
С другой стороны, вы можете сохранить атрибут title и создать fancybox title, объединяющий оба атрибута title и data-caption, поэтому для этого HTML
<a class="fancybox" href="images/01.jpg" title="This is the title" data-caption="This is the caption">Open fancybox</a>
Используйте этот script
$(document).ready(function() {
$('.fancybox').fancybox({
beforeShow : function(){
this.title = this.title + " - " + $(this.element).data("caption");
}
});
}); // ready
Кроме того, вы также можете получить caption/title из другого HTML-элемента в вашем документе (например, <div>), который может иметь ссылки или другие элементы HTML. Проверьте эти сообщения для примеров кода: fooobar.com/questions/482573/... и fooobar.com/questions/482576/...
ПРИМЕЧАНИЕ: это для fancybox v2.0.6 +
Ответ 2
Старый вопрос, но благодаря ответу JFK я узнал, что с последней версией fancybox вы можете добавить заголовок просто, введя значение в атрибуте title="" (по умолчанию). Просто убедитесь, что он включен в элемент <a> с классом fancybox.