Foros del Web » Programando para Internet » Javascript »

eventos dentro del script

Estas en el tema de eventos dentro del script en el foro de Javascript en Foros del Web. Hola. Tengo un script que se activa con un mouseOver de html, básicamente es un setTimeout, pero necesito que se resetee con otro mouseOver dentro ...
  #1 (permalink)  
Antiguo 03/06/2003, 09:54
Avatar de Rafael
Modegráfico
 
Fecha de Ingreso: marzo-2003
Mensajes: 9.028
Antigüedad: 22 años
Puntos: 1826
eventos dentro del script

Hola.

Tengo un script que se activa con un mouseOver de html, básicamente es un setTimeout, pero necesito que se resetee con otro mouseOver dentro del mismo script, para que le vuelva a dar tiempo al usuario.

¿Cómo se puede sin que interfieran?
  #2 (permalink)  
Antiguo 03/06/2003, 10:40
Avatar de JavierB
Colaborador
 
Fecha de Ingreso: febrero-2002
Ubicación: Madrid
Mensajes: 25.052
Antigüedad: 23 años, 1 mes
Puntos: 772
Hola, Rafael.

No he entendido lo del mouseOver dentro del script. ¿Podrías explicarlo mejor? O quizás poner el código que están usando, o la parte a que te refieres.

Saludos,
  #3 (permalink)  
Antiguo 04/06/2003, 16:09
Avatar de Rafael
Modegráfico
 
Fecha de Ingreso: marzo-2003
Mensajes: 9.028
Antigüedad: 22 años
Puntos: 1826
Eventos

Gracias.

El Html:
a href="#" onMouseOver="Ejemplo()"

El Script:
function Ejemplo () {
...; Apagado (); }

function Apagado () {
window.setTimeout("Esconder()", 10000);
/*aquí faltaría un reset, supongo que activado con otro mouseOver*/}

function Esconder () {...}


La función Ejemplo es una especie de menú que hace varias cosas, por lo que hice modular el resto.

La función Esconder lo hace con CSS y demás.

La funcionalidad que necesito es en Apagado.
Por el momento el contenido se esconde a los 10 seg. de la primer puesta del cursor, pero necesito que si el usuario sigue moviendo el mouse y lo hace sobre la liga tenga otros 10 segundos para seguir decidiendo.

Gracias.


Última edición por Rafael; 04/06/2003 a las 16:09
  #4 (permalink)  
Antiguo 05/06/2003, 11:59
Avatar de Kaopectate
Colaborador
 
Fecha de Ingreso: diciembre-2001
Ubicación: Curaçao (Antillas Holandesas)
Mensajes: 3.179
Antigüedad: 23 años, 2 meses
Puntos: 38
Hola Rafael.

Yo tengo algo similar en el FAQ-35 y hasta donde he podido probar funciona correctamente.

Revísalo y discutimos en base a ese ejemplo, si lo deseas, ya que creo que es equivalente a lo tuyo.

Saludos.
  #5 (permalink)  
Antiguo 06/06/2003, 14:29
Avatar de Rafael
Modegráfico
 
Fecha de Ingreso: marzo-2003
Mensajes: 9.028
Antigüedad: 22 años
Puntos: 1826
Screen Saver

Cool, gracias. Una sugerencia y unas dudas:

var ida = 0;
var bEjecutado = false;
...

function iddle(){
if (bEjecutado) window.clearTimeout(ida);
bEjecutado = true;
ida = window.setTimeout("screenSaver()", nMili...);
}
...
body onload="iddle()" onmousemove="iddle()" onclick="iddle()"

La sugerencia es que en vez del onkeyup pongas un onmousemove y tal vez un onkeypress.

Las dudas; no entiendo muy bien quién detecta que no haya movimiento, ¿acaso iddle es un objeto predefinido?, porque no lo encuentro en el CoreReference de JavaScript 1.5.

"Traduciendo" al castellano:
Si "falso" limpia el contador
si "verdadero"... ¿contra quién se evalúa este verdadero o falso?

Gracias otra vez.
  #6 (permalink)  
Antiguo 06/06/2003, 14:40
Avatar de Kaopectate
Colaborador
 
Fecha de Ingreso: diciembre-2001
Ubicación: Curaçao (Antillas Holandesas)
Mensajes: 3.179
Antigüedad: 23 años, 2 meses
Puntos: 38
Hola Rafael.

Iddle es simplemente una función mia que se dispara al cargarse la página, y nuevamente al moverse el cursor o al detectarse un click (según tu código).

La idea es que cada vez que se le llama se dice a si misma: "dentro de cinco segundos debo llamar a otra página", si en el transcurso de ese tiempo alguien mueve el teclado, se desactiva el conteo anterior y lo vuelve a comenzar.

Es tal como lo querías hacer tu, o al menos eso creo.

Bueno, mientras escribo me doy cuenta de que no te estoy aportando nada que no sepas y finalizo pidiéndote que reformules tu duda porque no creo que no entiendas lo que te acabo de explicar porque casi es la redacción de tu pregunta.

Saludos.
  #7 (permalink)  
Antiguo 06/06/2003, 15:31
Avatar de Rafael
Modegráfico
 
Fecha de Ingreso: marzo-2003
Mensajes: 9.028
Antigüedad: 22 años
Puntos: 1826
Ya me aclaré

Gracias otra vez, funciona perfecto.

Ya le entendó la lógica, lo que me confundio fue el contra quien se evaluava para determinar true o false, pero ya me di cuenta que no se evalúa contra nadie, sino se le asigna por uno mismo.

Se me hace muy ingenioso, porque no importa al final que valor se le asigne.

  #8 (permalink)  
Antiguo 06/06/2003, 15:36
Avatar de Kaopectate
Colaborador
 
Fecha de Ingreso: diciembre-2001
Ubicación: Curaçao (Antillas Holandesas)
Mensajes: 3.179
Antigüedad: 23 años, 2 meses
Puntos: 38
No te entiendo pero no importa.

Si te refieres a la variable booleana bEjecutado, es un artificio que yo uso para que la primera vez que entre no haga el clearTimeOut puesto que nadie ha hecho setTimeOut, por eso esa variable es inicializada en false y luego cambiada una y otra vez a true. La idea es que la primera vez no hará el clear pero todas las siguientes si.

Yo creo sin embargo que eso no hace falta. Un clear de un timeout no iniciado creo que no da error, pero son cosas que en mi caso prefiero hacer para no depender de las implementaciones en las distintas plataformas.

Saludos.
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 19:35.