2012-09-10 10 views
11

Mi piacerebbe sapere come aggiungere più di un titolo (ad esempio una didascalia o un collegamento) alla fancybox. Sono consapevole che se aggiungo un titolo = "Bla" verrà visualizzato nella casella. Ma se aggiungo qualcosa come caption = "Blabla" al mio link immagine, quale codice devo avere in jquery.fancybox.js per estrarre quel tag didascalia?Fancybox: aggiungere didascalia e altre cose

+1

possibile duplicato di [Fancybox 2 titoli personalizzati e didascalie \ [da A (titolo) e IMG (alt \]] (http://stackoverflow.com/questions/9058442/fancybox-2-custom-titles-and- captions-from-atitle-and-imgalt) – Ankur

risposta

27

Non è necessario modificare il file originale jquery.fancybox.js poiché è possibile aggiungere questa opzione all'interno del proprio script fancybox personalizzato.

Se si utilizza HTML5 DOCTYPE, è possibile utilizzare l'attributo data-* per voi didascalia in modo da poter avere questo HTML:

<a class="fancybox" href="images/01.jpg" data-caption="This is the caption" >Open fancybox</a> 

Poi impostare lo script fancybox personalizzato e ottenere il data-caption utilizzando il beforeShow callback come

$(document).ready(function() { 
$('.fancybox').fancybox({ 
    beforeShow : function(){ 
    this.title = $(this.element).data("caption"); 
    } 
}); 
}); // ready 

Questo sostituirà lo title e utilizzerà lo data-caption.

D'altra parte, si consiglia di mantenere l'attributo title e costruire il title fancybox che unisce entrambi, title e data-caption attributi così, per questo HTML

<a class="fancybox" href="images/01.jpg" title="This is the title" data-caption="This is the caption">Open fancybox</a> 

Usa questo script

$(document).ready(function() { 
$('.fancybox').fancybox({ 
    beforeShow : function(){ 
    this.title = this.title + " - " + $(this.element).data("caption"); 
    } 
}); 
}); // ready 

Inoltre, è possibile ottenere lo caption/title da un altro elemento HTML all'interno del documento (ad esempio <div>) che può contenere collegamenti o altro er elementi HTML. Controllare questi posti per esempi di codice: https://stackoverflow.com/a/9611664/1055987 e https://stackoverflow.com/a/8425900/1055987

NOTA: questo è per fancybox v2.0.6 +

+0

Grazie, che ha aiutato molto! – Jean

+0

Soluzione elegante perfetta Grazie –

+0

@JFK C'è un modo per mantenere/mantenere la didascalia visibile? Nel mio ambiente, le didascalie scompaiono dopo un po ' secondi –

8

vecchia questione, ma grazie alla risposta di JFK ho scoperto che con l'ultima versione di fancybox si può aggiungere una didascalia semplicemente inserendo un valore nell'attributo title="" (per impostazione predefinita). Assicurati che sia incluso nell'elemento <a> con la classe fancybox.

+0

Grazie, questo è il primo che abbia mai letto per includerlo con il link. – tehlivi

+0

Contento di poter aiutare @tehlivi –

+1

Questo dovrebbe essere il risposta accettata Sfortunatamente l'OP è stata M.I.A. dal 2013. – Mike

Problemi correlati