¿Cómo usar Zurb Foundation reveal con las funciones de devolución de llamada abrir, abrir, cerrar y cerrar?


En el sitio web de la fundación zurb en http://foundation.zurb.com/docs/reveal.php enumeraron algunas opciones que incluyen

Open: función de devolución de llamada que activa 'antes' de que se abra el modal.

Opened: función de devolución de llamada que se activa 'después' de que se abra el modal.

Close: función callback que activa 'antes' que el modal se prepare para cerrar.

Cerrado: función de devolución de llamada que activa 'después' de que se cierre el modal.

Pero Yo no tengo idea de cómo usarlos con mi modal. Itried

$('#myModal').closed(function() {});

$('#myModal').trigger('reveal:closed')( {});

$('#myModal').reveal.closed(function() {});

$('#myModal').reveal().closed(function() {});

He buscado en Google pero no he encontrado resultados. ¿Alguien que pueda explicarlo o darme un ejemplo o proporcionar un enlace relacionado?

¡Gracias! Funciona!

Tengo otra pregunta estrechamente relacionada para reveal ()

<a href="#" class="button" data-reveal-id="myModal2">Click Me For A Modal</a>);

Traté de agregar un atributo como data-closeOnBackgroundClick="false" Que no parece funcionar. ¿Cuál debería ser la sintaxis correcta? ¿Funcionará para la devolución de llamada ¿funciona también?

Author: Garrett Albright, 2012-12-06

9 answers

Llama a reveal como lo harías normalmente, pero incluye el nombre de la opción y la función correspondiente como un objeto:

//Reveal the modal and say "Good bye" when it closes
$("#myModal").reveal({ "closed": function () { alert("Good bye") } });
 15
Author: chrisjsherm,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/ajaxhispano.com/template/agent.layouts/content.php on line 61
2012-12-07 15:40:33

La respuesta anterior no funcionó para mí. Esto es lo que funcionó (Foundation 4 y jQuery):

$('#myModal').bind('opened', function() {
  console.log("myModal opened");
});
 41
Author: meatrobot,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/ajaxhispano.com/template/agent.layouts/content.php on line 61
2013-05-20 20:54:51

Enlaces de eventos para Zurb Foundation Reveal -

Hay una serie de eventos a los que puedes enlazar para activar callbacks:

$(document).on('open.fndtn.reveal', '[data-reveal]', function () {
  // your code goes here...
});

$(document).on('opened.fndtn.reveal', '[data-reveal]', function () {
  // your code goes here...
});

$(document).on('close.fndtn.reveal', '[data-reveal]', function () {
  // your code goes here...
});

$(document).on('closed.fndtn.reveal', '[data-reveal]', function () {
  // your code goes here...
});

Si tiene múltiples datos-reveal se usa en una sola página de la siguiente manera :

<div class="content reveal-modal" id="element-1" data-reveal>
<div class="content reveal-modal" id="element-2" data-reveal>

Luego, en estas situaciones, puede activar la devolución de llamada igual que se explicó anteriormente, pero con pocas modificaciones, como se muestra a continuación:

$(document).on('open.fndtn.reveal', '#element-1[data-reveal]', function () {
  // your code goes here...
});

$(document).on('open.fndtn.reveal', '#element-2[data-reveal]', function () {
  // your code goes here...
});
 19
Author: Kedar.Aitawdekar,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/ajaxhispano.com/template/agent.layouts/content.php on line 61
2014-10-08 08:08:11

En Zurb Foundation v6, estos eventos fueron renombrados a xxx.zf.reveal:

  • cierra.zf.reveal Dispara inmediatamente antes de que se abra el modal. Cierra cualquier otro modal que esté actualmente abierto
  • abierto.zf.reveal Se dispara cuando el modal se ha abierto con éxito.
  • cerrado.zf.reveal Se dispara cuando el modal termina de cerrarse.

Fuente: http://foundation.zurb.com/sites/docs/reveal.html#js-events

Ejemplos:

  • Callback genérico que se activará para todos los modales:

    $(document).on('open.zf.reveal', '[data-reveal]', function() {
      console.log('This works');
    });
    
  • Callback que se activará cuando se abra un modal específico:

    $(document).on('open.zf.reveal', '#<ELEMENT-ID>[data-reveal]', function() {
      console.log('This works');
    });
    
 7
Author: sequielo,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/ajaxhispano.com/template/agent.layouts/content.php on line 61
2017-05-04 01:05:46

Como dijo meatrobot, para que esto funcione, desea enlazar al modal con la acción que está apuntando. Tengo esto para trabajar:

$('#myModal').bind('closed', function() {
    console.log("myModal closed!");
});
 3
Author: Chris Roane,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/ajaxhispano.com/template/agent.layouts/content.php on line 61
2013-09-17 13:34:31

Esto es un poco tarde, pero para la segunda parte se agregan los atributos como una lista de valores separados por punto y coma en el atributo data-options (probado con foundation 5), es decir:

<div id="myModal" data-options="close_on_background_click:false;" class="reveal-modal">

Y no, no puedes pasar funciones de esta manera, lo intenté :)

 2
Author: James Lock,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/ajaxhispano.com/template/agent.layouts/content.php on line 61
2014-02-15 10:47:51

Mirando Foundation 5 y encontramos que la biblioteca reveal activa los eventos open, opened, close y closed. Simplemente adjunte un controlador al evento que desee.

$('#myModal').on([event], handler)

También puede pasar los controladores a través del argumento settings. Mira esto: https://github.com/zurb/foundation/blob/master/js/foundation/foundation.reveal.js#L92

 1
Author: djtek,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/ajaxhispano.com/template/agent.layouts/content.php on line 61
2015-07-08 00:30:28

La documentación de foundation 5 especifica el alcance de los eventos reveal al espacio de eventos 'reveal'. Sin embargo, los eventos modales reales no parecen disparar consistentemente dentro de este espacio de eventos. La eliminación de esta especificación soluciona el problema:

$(document).on('opened.fndtn', '[data-reveal]', function() {
  console.log('This works');
});
 1
Author: Brian Peacock,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/ajaxhispano.com/template/agent.layouts/content.php on line 61
2016-04-26 13:35:32

En la fundación 3.2.5 deberías enlazar 'reveal: opened' así:

$('#myModal').bind('reveal:opened', function() {
   console.log("myModal opened");
});

Saludos, MarianoC.

 0
Author: MarianoC,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/ajaxhispano.com/template/agent.layouts/content.php on line 61
2015-07-06 21:28:30