2013-03-01 6 views
11

Sto provando a distruggere Fancybox. Non ho trovato alcun metodo per farlo in documentation. Come distruggerlo dopo che è stato inizializzato?Come distruggere Fancybox?

Questo non funziona:

$("a").unbind('fancybox').unbind('click'); 

codice Testing: http://jsfiddle.net/martinba/yy3cw/2/

Io uso corrente versione 2.1.4.

+0

Che cosa si intende per distruggere? Vuoi nascondere tutto questo? – Manoj

+0

Ho bisogno di tornare al comportamento standart: si fa clic sul collegamento ... e il browser lo aprirà. Nessuna finestra interna di Fancybox, proprio come non c'è javascript. – Martin

risposta

13

Al fine di svincolare fancybox bisogna separare gli eventi in fb-start spazio dei nomi da document:

$(document).unbind('click.fb-start'); 

Anche se, non so il motivo per cui lo sviluppatore ha reso così non ovvio.

http://jsfiddle.net/dfsq/yy3cw/16/

+0

Sembra funzionare. Grazie! – Martin

+0

Se sulla mia pagina sono presenti più istanze di fancybox, come la galleria immagini - esiste un modo per dissipare solo immagini specifiche ma non il tutto? – webdevbyjoss

+0

@Passer per suggerisco di pubblicare una nuova risposta con il tuo codice. – dfsq

2

provare a chiamare:

.unbind('click.fb') a unbind fancybox.

come:

$('.group').unbind('click.fb') 
+0

Purtroppo, non funziona. Eccolo: http://jsfiddle.net/martinba/yy3cw/11/ Clicca sul pulsante init e poi distruggi. "FancyDevil" è ancora lì. – Martin

+0

Questo ha funzionato per me. Il "click.fb-start" no. Immagino dipenda dalla versione FB. – igasparetto

+0

Questo sembra funzionare bene con fancybox 1.34 – Hutch

0

Come è stato detto qui in precedenza: $(document).unbind('click.fb-start'); Ma si potrebbe anche voler aggiungere questa opzione per la chiamata fancybox init: live:false

1

Si può associare ogni casella di fantasia eseguendo:

$(document).unbind('click.fb-start'); 

Oppure, se non è necessario separare un selettore specifico, è possibile annullarlo. Tel.

var selector = 'a.my-fancy-box'; 
selector = selector + ":not('.fancybox-item, .fancybox-nav')"; 
$(document).undelegate(selector, 'click.fb-start'); 

O in alternativa:

// Bind 
$('a.my-fancy-box').fancybox({live: false}); 

// Unbind 
$('a.my-fancy-box').unbind('click.fb');