2012-05-30 21 views
6

Por alguna razón, simplemente no ejecuta la función onComplete. Sin embargo carga la fancybox div. Mi html:Fancybox onComplete function not running

<ul> 
    <li class="orange"> 

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

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

    </li> 
</ul> 

Mi jQuery:

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

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

la alerta no se ejecuta. También intenté cambiar la función de evento a onClosed y los demás eventos, y nada.

+0

han considerado usted? http://jsfiddle.net/3Nf4c/ – JFK

+0

esta es la solución para FancyBox 2 http://stackoverflow.com/questions/10295746/fancybox-2-height-not-working –

Respuesta

0

parece como Typos

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

que no funciona, sí, carga la alerta, pero el color bg no cambia – Nicola

+0

onComplete funciona correctamente? Usted dice que carga la alerta. pero quieres cambiar el color de fondo '.fancybox-skin'? ¿Podría proporcionar el enlace del sitio – agriboz

+0

? No encontré el selector '.fancybox-skin' en jquery.fancybox-1.3.4.css – agriboz

16

supongo que se olvidó de especificar qué versión de FancyBox que está utilizando.

onComplete es una opción de devolución de llamada para v1.3.x FancyBox mientras que la clasefancybox-skinse introdujo hasta la versión 2.x, ..... así que supongo que está utilizando la versión 2.x, no son ¿tú?

Las opciones de Fancybox v2.x son nuevas y no son compatibles con las versiones anteriores; el equivalente para la opción onComplete (v1.3.x) ahora es la opción de devolución de llamada afterLoad (v2.x).

Comprobar http://fancyapps.com/fancybox/#docs para la lista completa de opciones, los métodos y las devoluciones de llamada para v2.xy FancyBox

+0

gracias por eso. Estaba buscando aquí - http://fancybox.net/ ¿Es esa una fancybox diferente entonces? – Nicola

+0

Básicamente es el mismo complemento (y el mismo autor) pero la versión 1.x y 2.x tienen diferentes páginas web debido a sus diferentes características y planes de licencia. No olvide marcar esta respuesta como correcta si lo considera así. Gracias. – JFK

+2

En realidad, 'afterShow' tendría más sentido usar si planea agregar cualquier evento. 'afterload 'se enciende tan pronto como está listo para cargar _antes_ de que muestre algo –

2

FancyBox versión 2 no soporta onComplete. Utiliza 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 Creo que es la propia equivalente a onComplete en Fabxybox 2

+0

Esta fue la respuesta correcta para mí. Estaba agregando un mapa de imagen a una diapositiva de un conjunto. 'afterShow' hizo el trabajo como estaba previsto. 'afterload 'no fue el evento correcto para agregar este atributo:' $ ('. fancybox-image '). attr (' usemap ',' #Map '); ' – jerrygarciuh