Foros del Web » Programando para Internet » Javascript »

Un boton puede tener mas de una acción?

Estas en el tema de Un boton puede tener mas de una acción? en el foro de Javascript en Foros del Web. Buenas, Tengo una duda, si mi botón ya tiene una función que es abrir un pop-up, es posible asignarle otra acción? es decir, que abra ...
  #1 (permalink)  
Antiguo 09/11/2009, 13:51
Avatar de neodani  
Fecha de Ingreso: marzo-2007
Mensajes: 1.811
Antigüedad: 17 años, 2 meses
Puntos: 20
Un boton puede tener mas de una acción?

Buenas,

Tengo una duda, si mi botón ya tiene una función que es abrir un pop-up, es posible asignarle otra acción? es decir, que abra el pop-up, y que la pagina padre se redireccione a otra página?

Ej de lo que tengo

Código:
<a href="pop-up.php" target="v" onclick="window.open(this.href, this.target, 'width=500,height=500'); return false" >Abrir Pop-up</a>
Muchas gracias de antemano
  #2 (permalink)  
Antiguo 09/11/2009, 13:53
Avatar de zerokilled
Javascripter
 
Fecha de Ingreso: abril-2009
Ubicación: Isla del Encanto, La Borinqueña [+>==]
Mensajes: 8.050
Antigüedad: 15 años
Puntos: 1485
Respuesta: Un boton puede tener mas de una acción?

si, es posible. asi como tienes separado las instrucciones de abrir popup y cancelar evento, de la misma forma puedes incluir una cantidad variable de instrucciones en un evento. lo importante es que cada instruccion tienen que estar separada por un punto y coma (;).
__________________
la maldad es una virtud humana,
y la espiritualidad es la lucha del hombre contra su maldad.
  #3 (permalink)  
Antiguo 09/11/2009, 13:53
Avatar de JavierB
Colaborador
 
Fecha de Ingreso: febrero-2002
Ubicación: Madrid
Mensajes: 25.052
Antigüedad: 22 años, 2 meses
Puntos: 772
Respuesta: Un boton puede tener mas de una acción?

Hola neodani

Quita return false para que se ejecute el href

Saludos,
  #4 (permalink)  
Antiguo 09/11/2009, 15:21
Avatar de neodani  
Fecha de Ingreso: marzo-2007
Mensajes: 1.811
Antigüedad: 17 años, 2 meses
Puntos: 20
Respuesta: Un boton puede tener mas de una acción?

Cita:
Iniciado por zerokilled Ver Mensaje
si, es posible. asi como tienes separado las instrucciones de abrir popup y cancelar evento, de la misma forma puedes incluir una cantidad variable de instrucciones en un evento. lo importante es que cada instruccion tienen que estar separada por un punto y coma (;).
Uhmm... no es así?

<a href="pop-up.php" target="v" onclick="window.open(this.href, this.target, 'width=500,height=500');document.location.href=pag ina.php;" >Abrir pop-up y redireccionar</a>

Muchas gracias
  #5 (permalink)  
Antiguo 09/11/2009, 15:37
Avatar de stock  
Fecha de Ingreso: junio-2004
Ubicación: Monterrey NL
Mensajes: 2.390
Antigüedad: 19 años, 10 meses
Puntos: 53
Respuesta: Un boton puede tener mas de una acción?

Claro que es posible hacerlo inclusive agregando dos listeners diferentes al mismo elemento.

Actualmente lo estas haciendo de una manera muy "arcaica" o "antigua", realmente eso ya no se debería hacer, te recomiendo hacerlo de la siguiente manera:

Código:
//el script

var link = document.getElementById('link');

//podemos agregar varios listeners
link.addEventListener('click',function(){
      window.open(this.href, this.target, 'width=500,height=500');
      return false;
},false);

//a un mismo evento!!
link.addEventListener('click',function(){
     document.location='pagina.php';
     return false;
},false)



//el html....
<body>

<a href="pop-up.php" id="link">Abrir pop-up y redireccionar</a>

</body>
De esta manera estarías siguiendo la especificación y escribirías mejor código, para más información: https://developer.mozilla.org/en/DOM...dEventListener

saludos

PS: no he probado el código pero creo que quedó clara la idea.
  #6 (permalink)  
Antiguo 09/11/2009, 17:04
Avatar de neodani  
Fecha de Ingreso: marzo-2007
Mensajes: 1.811
Antigüedad: 17 años, 2 meses
Puntos: 20
Respuesta: Un boton puede tener mas de una acción?

Cita:
Iniciado por stock Ver Mensaje
Claro que es posible hacerlo inclusive agregando dos listeners diferentes al mismo elemento.

Actualmente lo estas haciendo de una manera muy "arcaica" o "antigua", realmente eso ya no se debería hacer, te recomiendo hacerlo de la siguiente manera:

Código:
//el script

var link = document.getElementById('link');

//podemos agregar varios listeners
link.addEventListener('click',function(){
      window.open(this.href, this.target, 'width=500,height=500');
      return false;
},false);

//a un mismo evento!!
link.addEventListener('click',function(){
     document.location='pagina.php';
     return false;
},false)



//el html....
<body>

<a href="pop-up.php" id="link">Abrir pop-up y redireccionar</a>

</body>
De esta manera estarías siguiendo la especificación y escribirías mejor código, para más información: https://developer.mozilla.org/en/DOM...dEventListener

saludos

PS: no he probado el código pero creo que quedó clara la idea.
Muchas gracias stock, veo muy limpio el código, facil de entender ;)

Sin embargo, no funciona el abrir el pop-up, tan solo la redirección.

Código HTML:
<html>
<head>
<script type="text/javascript">
var link = document.getElementById('link');

//podemos agregar varios listeners
link.addEventListener('click',function(){
      window.open(this.href, this.target, 'width=500,height=500');
      return false;
},false);

//a un mismo evento!!
link.addEventListener('click',function(){
     document.location='otra_web.php';
     return false;
},false)
</script>
</head>
<body>

<a href="pop-up.php" id="link">Abrir pop-up y redireccionar</a>

</body>
</html> 
Es curioso porque si intercambio los eventos, en lugar de funcionar la redirección, funciona el pop-up. Es decir, es como si solo valiese el último listener...
  #7 (permalink)  
Antiguo 09/11/2009, 17:16
Avatar de zerokilled
Javascripter
 
Fecha de Ingreso: abril-2009
Ubicación: Isla del Encanto, La Borinqueña [+>==]
Mensajes: 8.050
Antigüedad: 15 años
Puntos: 1485
Respuesta: Un boton puede tener mas de una acción?

sucede que el script intenta primero agregar el evento antes de que el elemento es analizado. si miras la consola de error te dice que link es null. la solucion, ejecuta el script luego de la carga del documento o posiciona el script luego del elemento a referirse.

Cita:
Iniciado por neodani Ver Mensaje
Uhmm... no es así?

<a href="pop-up.php" target="v" onclick="window.open(this.href, this.target, 'width=500,height=500');document.location.href=pag ina.php;" >Abrir pop-up y redireccionar</a>

Muchas gracias
por cierto, si, mas o menos asi es. solo que,
Código:
document.location.href=pagina.php;
lo rojo debe ser un string.
__________________
la maldad es una virtud humana,
y la espiritualidad es la lucha del hombre contra su maldad.
  #8 (permalink)  
Antiguo 10/11/2009, 00:44
Avatar de neodani  
Fecha de Ingreso: marzo-2007
Mensajes: 1.811
Antigüedad: 17 años, 2 meses
Puntos: 20
Respuesta: Un boton puede tener mas de una acción?

Cita:
Iniciado por zerokilled Ver Mensaje
sucede que el script intenta primero agregar el evento antes de que el elemento es analizado. si miras la consola de error te dice que link es null. la solucion, ejecuta el script luego de la carga del documento o posiciona el script luego del elemento a referirse.
Muchas gracias zerokilled, funcionó tal y como dijiste :)
¿Como vistes la consola de error? me dejaste intrigado
Estoy utilizando firebug, pero no supe ver que link esta a null , con la consola de errores te referías a firebug?

Muchas gracias
  #9 (permalink)  
Antiguo 10/11/2009, 05:49
 
Fecha de Ingreso: noviembre-2009
Mensajes: 7
Antigüedad: 14 años, 6 meses
Puntos: 1
Respuesta: Un boton puede tener mas de una acción?

Creo que se refiere a la Consola de Errores de Firefox.

La puedes encontrar en Herramientas/Consola de Errores

Salu2!
  #10 (permalink)  
Antiguo 10/11/2009, 08:27
Avatar de zerokilled
Javascripter
 
Fecha de Ingreso: abril-2009
Ubicación: Isla del Encanto, La Borinqueña [+>==]
Mensajes: 8.050
Antigüedad: 15 años
Puntos: 1485
Respuesta: Un boton puede tener mas de una acción?

es correcto, desde herramientas > consola de errores. pero si tienes apropiadamente configurado el firebug tambien puedes ver los errores desde el panel Console. te fijaras cuando se produce un error porque en la esquina derecha inferior veras un conteo de errores.
__________________
la maldad es una virtud humana,
y la espiritualidad es la lucha del hombre contra su maldad.
Atención: Estás leyendo un tema que no tiene actividad desde hace más de 6 MESES, te recomendamos abrir un Nuevo tema en lugar de responder al actual.
Respuesta




La zona horaria es GMT -6. Ahora son las 13:20.