J'aimerais savoir comment je peux ajouter plus d'un titre (par exemple une légende ou un lien) à la fantaisie. Je suis conscient que si j'ajoute un titre = "bla", il apparaîtra dans la boîte. Mais si j'ajoute quelque chose comme la légende = "blabla" à mon lien image, quel code dois-je avoir dans jquery.fancybox.js pour tirer cette étiquette de légende?
Vous n'avez pas besoin de déconner avec original jquery.fancybox.js Fichier Depuis que vous pouvez ajouter cette option dans votre propre script de Fancybox personnalisé.
Si vous utilisez HTML5 DOCTYPE
, vous pouvez utiliser le data-*
Attribut pour votre légende afin que vous puissiez avoir ce HTML:
<a class="fancybox" href="images/01.jpg" data-caption="This is the caption" >Open fancybox</a>
Puis définissez votre script de fantabox personnalisé et obtenez le data-caption
utiliser le rappel beforeShow
$(document).ready(function() {
$('.fancybox').fancybox({
beforeShow : function(){
this.title = $(this.element).data("caption");
}
});
}); // ready
Qui remplacera le title
et utilisera le data-caption
au lieu.
D'autre part, vous voudrez peut-être garder l'attribut title
et construire le title
combinant les deux, title
et data-caption
attributs donc, pour ce HTML
<a class="fancybox" href="images/01.jpg" title="This is the title" data-caption="This is the caption">Open fancybox</a>
Utilisez ce script
$(document).ready(function() {
$('.fancybox').fancybox({
beforeShow : function(){
this.title = this.title + " - " + $(this.element).data("caption");
}
});
}); // ready
De plus, vous pourriez aussi obtenir le caption/title
à partir d'un autre élément HTML dans votre document (A <div>
Par exemple) pouvant avoir des liens ou d'autres éléments HTML. Consultez ces messages pour les exemples de code: https://stackoverflow.com/a/9611664/1055987 et https://stackoverflow.com/a/8425900/1055987
[~ # ~] Remarque [~ # ~] : Ceci est pour FANCYBOX V2.0.6 +
Question ancienne, mais grâce à la réponse de JFK, j'ai découvert que la dernière version de fancybox
vous pouvez ajouter une légende simplement en entrant une valeur dans le title=""
attribut (par défaut). Assurez-vous simplement qu'il est inclus sur le <a>
élément avec la classe fancybox
.