2012-05-30 18 views
6

Per qualche motivo non è in esecuzione la funzione onComplete. Tuttavia carica il div fancybox. Il mio html:Funzione Fancybox onComplete non in esecuzione

<ul> 
    <li class="orange"> 

      #1 <a href="#text">click here</a> 

      <div id="text" class="text">text text text</div> 

    </li> 
</ul> 

mio jquery:

jQuery('li a').fancybox({  
    'autoDimensions': 'false', 
    'width' : 631, 
    'height': 256,   
    'onComplete':function(){ 

     alert('running'); 
     jQuery('.fancybox-skin').css('background-color',colour); 
    } 
}); 

l'avviso non viene eseguito. Ho anche provato a cambiare la funzione evento su e gli altri eventi, e nulla.

+0

avete considerato? http://jsfiddle.net/3Nf4c/ – JFK

+0

questa è la soluzione per fancybox 2 http://stackoverflow.com/questions/10295746/fancybox-2-height-not-working –

risposta

0

sembra come typo

jQuery('#tips li a').fancybox({  
'autoDimensions': 'false', 
'width' : 631, 
'height': 256,   
'onComplete':function(){ 

    alert('running'); 
    jQuery('.fancybox-skin').css('background-color',colour); // colour to 'red' for example. typo 
} 
}); 

Working example

+0

che non funziona, Sì, carica l'avviso, ma il colore bg non cambia – Nicola

+0

onComplete function is right? Tu dici che carica l'avviso. ma vuoi cambiare il colore di sfondo '.fancybox-skin'? potresti fornire il link al sito – agriboz

+0

non ho trovato il selettore '.fancybox-skin' in jquery.fancybox-1.3.4.css – agriboz

16

Credo che ti sei dimenticato di specificare quale versione di fancybox che si sta utilizzando.

onComplete è un'opzione di callback per fancybox La versione 1.3.x mentre il fancybox-skinclasse è stato introdotto fino alla versione 2.x, ..... quindi immagino che si utilizza la versione 2.x, non sono tu?

Le opzioni di Fancybox v2.x sono nuove e non sono compatibili con le versioni precedenti; l'equivalente per l'opzione onComplete (v1.3.x) è ora l'opzione di callback afterLoad (v2.x).

Controllare http://fancyapps.com/fancybox/#docs per l'elenco completo delle opzioni, metodi e callback per fancybox v2.x

+0

grazie per quello. Stavo guardando qui - http://fancybox.net/ che è una fancybox diversa? – Nicola

+0

È fondamentalmente lo stesso plug-in (e lo stesso autore) ma la versione 1.xe 2.x hanno pagine Web diverse perché le loro diverse funzionalità e piani di licenza. Per favore, non dimenticare di contrassegnare questa risposta come corretta se la consideri così. Grazie. – JFK

+2

In realtà, 'afterShow' potrebbe essere più sensato da utilizzare se si intende aggiungere eventi. 'afterLoad' si attiva non appena è pronto per caricare _before_ mostra qualcosa di tutto –

2

Fancybox versione 2 non supporta onComplete. Utilizza afterLoad.

jQuery('#tips li a').fancybox({  
    'autoDimensions': 'false', 
    'width' : 631, 
    'height': 256,   
    afterLoad:function(){ 

     alert('running'); 
     jQuery('.fancybox-skin').css('background-color',colour); // colour to 'red' for example. typo 
    } 

}); 
6

afterShow credo sia il corretto equivalente a onComplete in Fabxybox 2

+0

Questa è stata la risposta corretta per me. Stavo aggiungendo una mappa immagine a una diapositiva di un set. 'afterShow' ha fatto il lavoro come previsto. 'afterLoad' non era l'evento corretto per l'aggiunta di questo attributo:' $ ('. fancybox-image'). attr ('usemap', '#Map'); ' – jerrygarciuh