Foros del Web » Programando para Internet » Javascript »

Combinar dos funciones en onclick

Estas en el tema de Combinar dos funciones en onclick en el foro de Javascript en Foros del Web. Necesito combinar dos funciones javascript en el parámetro onclick, pero no atino a hacerlo bien. Por un lado tengo una tabla en la que gracias ...
  #1 (permalink)  
Antiguo 29/11/2002, 12:18
Avatar de mrgubu  
Fecha de Ingreso: febrero-2002
Ubicación: Granada
Mensajes: 431
Antigüedad: 22 años, 2 meses
Puntos: 2
Combinar dos funciones en onclick

Necesito combinar dos funciones javascript en el parámetro onclick, pero no atino a hacerlo bien.

Por un lado tengo una tabla en la que gracias al componente hover.htc (extraído de la página principal de Brinkster) una celda se convierte en un enlace sin hacer cosas raras cuando sueltas en ratón después de pulsarlo. La celda va con los siguientes parámetros.

<td class=tdmenudch classOver=tdmenudchOver classDown=tdmenudchClick onClick="document.location = 'pagina.asp';"><a class="amenudch" href="pagina.asp">pagina.asp</a></td>

El problema se presenta porque quiero abrir algunos enlaces en nueva pantalla personalizada utilizando la función window.open (documento, nombre, parámetros). Para ello añado:

<a onclick="window.open(......); return false; >página.asp</a>

La ventana nueva se abre si pulsas exactamente sobre el enlace, pero NO si lo haces sobre el resto del área de la celda. Claro, necesito combinar en el parámetro onclick de <td> la función window.open con el document.location, pero no sé como hacerlo.


RESUMIENDO: ¿Cómo combino en el parámetro onclick estas dos líneas?

window.open(......); return false;

y

document.location = 'pagina.asp'

Graciasssss.
  #2 (permalink)  
Antiguo 29/11/2002, 12:28
 
Fecha de Ingreso: noviembre-2002
Ubicación: Mex
Mensajes: 140
Antigüedad: 21 años, 4 meses
Puntos: 0
facil

Hola, es muy sencillo combinar dos funciones en un mismo evento de funcion ahi te va:


onClick="document.location = 'pagina.asp';window.open('pagina.asp'); "
  #3 (permalink)  
Antiguo 29/11/2002, 12:28
 
Fecha de Ingreso: diciembre-2001
Ubicación: Madrid
Mensajes: 889
Antigüedad: 22 años, 3 meses
Puntos: 4
¿Probaste a separar cada acción por un punto y como->;?

Ejemplo enlaces.asp: <a href="#" onclick="window.open('pagina1.asp','_blank'); document.location='pagina2.asp'; return false;">Feo</a>

En el ejemplo, abrirá primero la página "pagina1.asp" en una nueva ventana, y tras hacerlo, se cargará en la página dónde se hubiquen esos esos enlaces (en el ejemplo enlaces.asp), la de "pagina2.asp".

¿eso es lo que andabas buscando?

Saludos!

Última edición por chivi; 29/11/2002 a las 12:30
  #4 (permalink)  
Antiguo 29/11/2002, 13:45
Avatar de mrgubu  
Fecha de Ingreso: febrero-2002
Ubicación: Granada
Mensajes: 431
Antigüedad: 22 años, 2 meses
Puntos: 2
Muchas gracias, efra y chivi. Habéis respondido los dos al mismo tiempo!!!.

Pero la solución que proponéis no funciona: falta algo más, además de unir las dos funciones con ;

Por favor, echadle un vistazo a http://granadalinks.com/pruebas/brinkster2.htm y veréis.
He dejado un ejemplo práctico del problema.
  #5 (permalink)  
Antiguo 29/11/2002, 14:10
Avatar de Kaopectate
Colaborador
 
Fecha de Ingreso: diciembre-2001
Ubicación: Curaçao (Antillas Holandesas)
Mensajes: 3.179
Antigüedad: 22 años, 3 meses
Puntos: 38
Tu ejemplo es muy claro, sin embargo tu redacción no tanto, explícame algunas cosas:

1.- ¿Necesitas una funcionalidad distinta al seleccionar la palabra con respecto a seleccionar el área o al presionar dentro del <td> deberían pasar ambas cosas no importando si se selecciona o no el texto?

2.- De las seis posibilidades de tu ejemplo (área del primer cuadro, texto del área del primer cuadro, área del segundo cuadro, ...) cual de los resultados es el que esperas? ¿Cual está funcionando como deseas?

Lo que necesitas es muy sencillo, pero no acabo de comprender el requerimiento.

Espero...
  #6 (permalink)  
Antiguo 29/11/2002, 14:11
 
Fecha de Ingreso: diciembre-2001
Ubicación: Madrid
Mensajes: 889
Antigüedad: 22 años, 3 meses
Puntos: 4
jajajaja es cierto..

Bien, quita "return false;" en el enlace de "Nueva Ventana 1 y 2" y ya está. Es es tu error. Simplemente, ni lo pongas... (como ves, lo que hace es detenerte el código).

Saludos!
  #7 (permalink)  
Antiguo 29/11/2002, 14:20
Avatar de Kaopectate
Colaborador
 
Fecha de Ingreso: diciembre-2001
Ubicación: Curaçao (Antillas Holandesas)
Mensajes: 3.179
Antigüedad: 22 años, 3 meses
Puntos: 38
Yo tengo la impresión de que deberías quitar el elemento <a> y manejar ambas acciones con un onclick en el <td>. El subrayado igual lo puedes obtener con CSS.

...pero igual no estoy seguro de si el que no comprende soy yo...
  #8 (permalink)  
Antiguo 29/11/2002, 14:23
 
Fecha de Ingreso: diciembre-2001
Ubicación: Madrid
Mensajes: 889
Antigüedad: 22 años, 3 meses
Puntos: 4
Kaopectate

Su error es el que posteé 2 más arriba, pruébalo...

Si quita el enlace, solo linkará en la celda y el texto simplemente, no lo podrás enlazar, ya que lo tomará como simple texto..

Saludos!
  #9 (permalink)  
Antiguo 29/11/2002, 14:52
Avatar de mrgubu  
Fecha de Ingreso: febrero-2002
Ubicación: Granada
Mensajes: 431
Antigüedad: 22 años, 2 meses
Puntos: 2
Amigos, gracias por vuestro interés.

Chivi, quito el return false y sigue sin funcionar. Pruébalo, he actualizado el ejemplo práctico.

A mi me da la impresión de que habría que sustituir en el <TD Onclick> el "this.href" por "document.location...." de alguna manera que no sé.
  #10 (permalink)  
Antiguo 29/11/2002, 15:45
Avatar de mrgubu  
Fecha de Ingreso: febrero-2002
Ubicación: Granada
Mensajes: 431
Antigüedad: 22 años, 2 meses
Puntos: 2
Kaopectate:

Lo que quiero conseguir es abrir el enlace en nueva ventana personalizada da igual si pulso el link o un área vacía de la celda .
  #11 (permalink)  
Antiguo 29/11/2002, 15:57
Avatar de Kaopectate
Colaborador
 
Fecha de Ingreso: diciembre-2001
Ubicación: Curaçao (Antillas Holandesas)
Mensajes: 3.179
Antigüedad: 22 años, 3 meses
Puntos: 38
document.location <> window.location

MrGubu, una nota importante es que no es igual document.location que window.location.

Para lo que quieres hacer, deberías usar window.location ya que la otra no solo es readonly sino que no se recomienda su uso.

Saludos.
  #12 (permalink)  
Antiguo 30/11/2002, 12:31
Avatar de mrgubu  
Fecha de Ingreso: febrero-2002
Ubicación: Granada
Mensajes: 431
Antigüedad: 22 años, 2 meses
Puntos: 2
Necesito una ayudita más, todavía no he conseguido solucionar el problema.
  #13 (permalink)  
Antiguo 12/02/2010, 05:52
 
Fecha de Ingreso: febrero-2010
Mensajes: 1
Antigüedad: 14 años, 2 meses
Puntos: 0
Respuesta: Combinar dos funciones en onclick

Hola en mi caso es una duda también, como se parece algo al que ha explicado mrgubu, en mi caso quiero saber si es posible combinar en un onClick una función javascript y guardar un valor en un bean jsp.

<td style="width: 143px" ><span onClick="javascript:ficheros('0');" <%USUARIO_SESION.setTp("0");%>>&nbsp;Gestión de Ficheros</span></td>

Necesito que al hacer click a parte de ejecutar la función ficheros con el parámetro 0 me guarde el valor 0 tb en el bean. Esto es para un menú que tiene varias opciones y q de momento van de 0 a 5, seguramente haya más pero la idea es ir poniendo el número que corresponde a cada uno y cuando pulse guardarlo en el setTp. Usuario sesion viene de un bean que llamo al principio de la página:

<jsp:useBean id="USUARIO_SESION" class="hilti.beans.UsuarioSesionBean" scope="session"/>

El problema es q tal como está puesto el código va al setTp por cada celda de la tabla, quedandose con el ultimo valor (en este caso 5), con lo cual la navegación no es correcta.

Gracias de antemano y espero haberme explicado correctamente, sino intentaré ser más claro.
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

SíEste tema le ha gustado a 1 personas




La zona horaria es GMT -6. Ahora son las 23:16.