Ver Mensaje Individual
  #15 (permalink)  
Antiguo 26/12/2017, 09:15
bienpiyao
 
Fecha de Ingreso: agosto-2009
Mensajes: 216
Antigüedad: 14 años, 8 meses
Puntos: 3
Respuesta: Dialog funciona solo para un elemento y no para el resto

Cita:
Iniciado por xfxstudios Ver Mensaje
es porque con el onclick inicial llamas a la funcion la que no hace nada, solo activar los observadores, es en el segudo click que se ejecuta la funcion de abrir el modal

Código Javascript:
Ver original
  1. function popup(v)//PRIMER CLICK--------------------------
  2.         {
  3.                         var d = "d" + v;
  4.             var c = "#close" + v;
  5.             var di = "#show" + v;
  6.            
  7.             var dialog = document.getElementById(d);
  8.             var clos = document.getElementById(c);
  9.  
  10. //SEGUNDO CLICK-------------------------------------------------------------
  11.           document.querySelector(di).onclick = function() {
  12.               dialog.showModal();
  13.           };
  14.  
  15.           document.querySelector(c).onclick = function() {
  16.               dialog.close();
  17.           };
  18. //SEGUNDO CLICK HASTA AQUI-----------------------------------------------
  19.             }

prueba eliminando el primer observador y ejecutando de una vez la apertura de tu modal al hacer click, de esa manera el espera en el segundo click es el cierre del modal:

Código Javascript:
Ver original
  1. function popup(v)
  2.         {
  3.                         var d = "d" + v;
  4.             var c = "#close" + v;
  5.             var di = "#show" + v;
  6.            
  7.             var dialog = document.getElementById(d);
  8.             var clos = document.getElementById(c);
  9.  
  10.           dialog.showModal();//PRIMER CLICK ABRO EL MODAL
  11.  
  12. //SEGUNDO CLICK CIERRO EL MODAL
  13.           document.querySelector(c).onclick = function() {
  14.               dialog.close();
  15.           };
  16.             }


Muchísimas gracias, funciona perfectamente.

Tema solucionado, lo dicho, gracias nuevamente.

Un saludo!!