2010-08-13 9 views
5

Tengo un formulario de edición que estoy mostrando como una superposición usando Jquery Tools.jQuery tools: ¿Cómo cerrar una superposición?

En mi página de vista de lista de objetos, cada objeto tiene <a href="#" class="edit_button">Edit</a>. Todos ellos están unidos a la misma forma de superposición con:

 $(".edit_button[rel]").overlay({ top: '5px', 
      fixed: false, 

      mask: { 
       color: '#ebecff', 
       loadSpeed: 200, 
       opacity: 0.9 
      } 
     }); 

El formulario de edición de superposición contiene un botón de cancelación:

<a href="#" class="cancel">Cancel</a> 

¿Cómo puedo hacer que este botón de cancelación cerrar la superposición? Parece que la única forma en que puedo acceder al objeto de la API de superposición es usar el selector que lo creó, en este caso $('.edit').each(), ya que no sé cuál activó la superposición.

Lo que realmente quiero hacer es algo como:

$('.cancel').click(function(e){ 
    var target = e.originalTarget || e.srcElement; 
    $(target).parent().parent().getOverlay().close(); 
}); 

pero esto no funciona.

¿Hay alguna manera de que pueda cerrar la superposición sin hacer:

$(".edit_button[rel]").each(function() { 
    $(this).overlay().close(); 
}); 

?

Respuesta

2

Usted puede agregar fácilmente más de cierre elementos dentro de la superposición simplemente asignar el nombre de clase CSS "cerrar" a ellos. Estos elementos se pueden diseñar con el estilo y colocarse como lo desee dentro de la superposición.

Si proporciona un valor para la variable de configuración cierre, el cierre elemento no es auto-generado y que necesidad de definir el elemento de cierre (s) mismo.

Así que si pones <a href="#" class="cancel close">Cancel</a> debería funcionar.

+0

gracias por su respuesta. desafortunadamente no funciona :-( – Roger

+0

Lo siento. Lo intentaré de nuevo, ver mi edición. –

+0

Funciona ahora. Gracias – Roger

1

Para cerrar el modal con JavaScript (de forma automática sin hacer clic en el botón de cierre):

$('#ID OF YOUR MODAL a.close').trigger("click"); 

o si se encuentra en un iframe (como yo), puso padres. antes del $.

+0

muy buena solución – Azd325

1

Ampliando lo que Kras proporcionó. Si sólo tiene una superposición abiertas a la vez (que lógicamente va a hacer), puede utilizar este enfoque más genérico quizá:

$('a.close').trigger('click'); 

espero que esto ayude!

Cuestiones relacionadas