Pregunta

Hola a todos quiero ser capaz de cerrar FancyBox cuando está abierto desde el interior.

He intentado el siguiente, pero en vano:

function closeFancyBox(html){
    var re = /.*Element insert complete!.*/gi;
    if( html.search( re ) == 0 ){
        $.fancybox.close();
        //alert("foo");
    }
}

foo se abrirá en el diálogo pero no se cerrará. ninguna pista?

¿Fue útil?

Solución

Prueba esto: . Progenitor $ fancybox.close ();.

FancyBox documentación de la API .

Otros consejos

Según http://fancybox.net/faq

  
      
  1. ¿Cómo puedo cerrar FancyBox de otro elemento? ?
  2.   
     

Sólo tiene que llamar en $.fn.fancybox.close()   el evento de clic

Así que sólo debe ser capaz de añadir en el fn.

Si lo que desea es cerrar la caja de lujo es suficiente para cerrarla.

$('#inline').click(function(){
  $.fancybox.close();
});

No sirve de nada poner el .fn, se reffers al prototipo.
Lo que hay que hacer es $ .fancybox.close ();

Lo que pasa es que usted está experimentando tal vez otro error de js.
Hay algún error en la pantalla?
Es su FancyBox y jQuery las últimas versiones? jQuery es actualmente en 1.4.1 y 1.3 en fb algo

Experimento poner un enlace dentro de la FancyBox y poner esa función en ella.

Es probable que hubiera leído, pero en cualquier caso, http://fancybox.net/api

Una cosa que es probable que tenga que hacer es aislar cada parte con el fin de darse cuenta de lo que es.

Puede incluso cerca FancyBox por acercarse botón ID y haga clic en llamar en caso de que ID.

<input type='button' value='Cancel' onclick='javascript:document.getElementById("fancybox-close").click();' />

A mí me funciona!

que tenía los mismos problemas un largo tiempo después me dieron la solución mediante el código de abajo. por favor utilice

parent.jQuery.fancybox.close()

Un poco de un viejo hilo, pero ...

En realidad, sospecho que la respuesta a la pregunta inicial acerca de cómo cerrar la ventana de dentro de la ventana tiene más que ver con el hecho de que el evento click no está unido al elemento. Si el evento click se adjunta en el document.ready el evento no será colocada cuando FancyBox crea la nueva ventana.

Es necesario volver a aplicar el evento de clic una vez que la nueva ventana. Probablemente la forma más sencilla de hacerlo es utilizar la función de onComplete.

Esto funciona para mí:

$(".popup").fancybox({
    'transitionIn'  :   'fade',
    'transitionOut' :   'elastic',
    'speedIn'       :   600, 
    'speedOut'      :   400, 
    'overlayShow'   :   true,
    'overlayColor'  :   '#000022',
            'overlayOpacity'  : 0.8,
            'onComplete' : function(){$('.closer').click(function(){parent.$.fancybox.close();})}
});

En realidad, después de un poco de pensamiento 'en vivo' en lugar de 'clic' o 'atar' podría funcionar igual de bien.

Use esto para cerrarla en su lugar:

$.fn.fancybox.close();

A juzgar por el código fuente FancyBox, que es la forma en que manejan el cierre internamente.

Después de luchar con este mismo he encontrado una solución que funciona igual sustituir el $ con jQueryjQuery.fancybox.close() y me hizo una secuencia de comandos en línea en un onClick. Va a comprobar si se puede llamar así del padre

Para los que pasaba horas como yo para encontrar la solución para el tipo de línea: window.setTimeout (function () {. Fancybox.close $ ()}, 10);

Terminé usando:

<script>parent.$("#fancy_close").click();</script>

Creo que la versión de FancyBox tenemos no tiene una función .fancybox.close $ () para que llame a: (

Para su información, sólo quería la página para cerrar la FancyBox, ya que había terminado su procesamiento en PHP.

Añadir $.fancybox.close() a donde quiera que usted quiere que se desencadenó, en una función o una devolución de llamada, fin de una llamada AJAX!

Woohoo.

Dentro de un uso iframe - matriz $ fancybox.close ();..

para cerrar FancyBox por su Funciton necesario hacer setTimtout a la función que cerrará la FancyBox FancyBox necesita un poco de tiempo para aceptar o no la función close Si se llama a la función directamente no funciona

function close_fancybox(){
$.fancybox.close();
                     }
setTimeout(close_fancybox, 50);

Sí en su Virtuemart debe haber botón Primer seguir comprando, no elemento, porque después de clic se puede redirigir .. me encontré con este error de redirección en mi sitio web ajax.

Para cerrar la ventana FancyBox ajax, utilice la siguiente:

onclick event -> $.fancybox.close();
return false;  
Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow
scroll top