Foros del Web » Programando para Internet » Javascript »

Interrumpir eventos

Estas en el tema de Interrumpir eventos en el foro de Javascript en Foros del Web. Sin lugar a dudas tengo muchas materias pendientes con JS; los eventos es la más importante. Realmente no se como puedo evitar que el motor ...
  #1 (permalink)  
Antiguo 08/05/2008, 20:26
Avatar de Calisco  
Fecha de Ingreso: marzo-2004
Ubicación: Neuquen
Mensajes: 732
Antigüedad: 20 años, 1 mes
Puntos: 4
Interrumpir eventos

Sin lugar a dudas tengo muchas materias pendientes con JS; los eventos es la más importante.
Realmente no se como puedo evitar que el motor deje de llamar a funciones que previamente yo había definido que se ejecuten en un evento determinado.
Estoy trabajando con mooTools ... pero seguro que con muy poco lo trasladamos a JS puro (puristas abstener las risas ... y mas si tienen más de 10000 post ).
En esta página http://www.xifox.net he definido tres eventos pos cada ventanita inferior: mouseenter (que es como mouseover), mouseleave (que es como mouseout) y mousedown.
Al hacer hover cambia la transparencia de la ventana.
Todo bien hasta ahí.
Ahora ... , cuando hago mousedown empiezo una animación de desplazamiento de las ventanas (left: x) que deberían terminar encimándose; el problema es que en la transición se vuelven a producir mouseenter y/o mouseleave en algunas de estas y me detiene la transición.
Simple pregunta:
Cómo puedo eliminar, momentáneamente y a mi antojo, estos eventos, ya sea en los elementos de las ventanas, o en todo el browser ?
No se si se entiende ...

Saludos, y gracias.

PD: recibo críticas del diseño, recién empiezo.
__________________
| Cabeza De Raton |

Última edición por Calisco; 09/05/2008 a las 04:41
  #2 (permalink)  
Antiguo 08/05/2008, 22:16
 
Fecha de Ingreso: septiembre-2007
Mensajes: 60
Antigüedad: 16 años, 7 meses
Puntos: 1
Re: Interrumpir eventos

Cita:
Iniciado por Calisco Ver Mensaje
No se si se entiende ...
yo de verdad no entendi ah y por cierto el diseño se ve bien
  #3 (permalink)  
Antiguo 08/05/2008, 22:28
Avatar de jahepi
Colaborador
 
Fecha de Ingreso: diciembre-2004
Ubicación: Querétaro
Mensajes: 1.124
Antigüedad: 19 años, 4 meses
Puntos: 43
Re: Interrumpir eventos

Hola Calisco !

No estoy muy familiarizado con el framework mootools, pero en su página podrías consultar la documentación relacionada con el manejo de eventos.

Saludos !
__________________
Una contraseña es como la ropa interior. No deberías dejarlas afuera a la vista de otras personas, deberías cambiarla regularmente, y ni se te ocurra prestarla a extraños.
  #4 (permalink)  
Antiguo 09/05/2008, 04:38
Avatar de Calisco  
Fecha de Ingreso: marzo-2004
Ubicación: Neuquen
Mensajes: 732
Antigüedad: 20 años, 1 mes
Puntos: 4
Re: Interrumpir eventos

Ya la consulté ... saludos y gracias.
__________________
| Cabeza De Raton |
  #5 (permalink)  
Antiguo 09/05/2008, 04:41
Avatar de caricatos
Moderador
 
Fecha de Ingreso: abril-2002
Ubicación: Torremolinos (Málaga)
Mensajes: 19.607
Antigüedad: 22 años, 1 mes
Puntos: 1284
Re: Interrumpir eventos

Hola Calisco:

Me parece que estoy en ese grupo del que pides abstinencia , aunque tal vez comentándote mi experiencia (que dicen que es la madre de las ciencias) te pueda ayudar algo...

La verdad es que los eventos no se pueden deshabilitar, pero sí puede programarse un comportamiento distinto para distintas ocasiones... por ejemplo, si en tu manejador del evento la trancisión está temporizada (setTimeout/setInterval), puedes hacer una cancelación de esa temporización desde otro evento:

onmouseover="transito = true; transitar(this.id, 0)"
onmouseout="transito=false"

function transitar(elemento, estado) {
if (transito || estado < 100) {
opacar(elemento, ++estado);
setTimeout("transitar('" + elemento + "', " + estado);
}
}

Como se ve la función se ejecuta con 2 condicionamientos.

... y no seas gruñón.

Saludos
__________________
Por favor:
No hagan preguntas de temas de foros en mensajes privados... no las respondo
  #6 (permalink)  
Antiguo 09/05/2008, 04:58
Avatar de Calisco  
Fecha de Ingreso: marzo-2004
Ubicación: Neuquen
Mensajes: 732
Antigüedad: 20 años, 1 mes
Puntos: 4
Re: Interrumpir eventos

Ok, está bien, si no entiendo mal lo que me dices es que de alguna manera yo puedo ejecutar o no el código de una función que es invocada por el explorador en cierto evento a través, en este caso, del valor de una variable ?. Si es así, no es lo que estoy intentando saber.

Empecemos de nuevo de cero.

Tengo un Elemento HTML
Código HTML:
<div id="miNodoHTML">HOA !</div> 
Y en JS tengo la referencia DOM a ese elemento en una variable
Código PHP:
var miNodo = $('miNodoHTML');
// No uso getElementById, tuve que entrar a google para que me sugiriera el nombre correcto ! ;-) 
Ahora quiero definirle un comportamiento particualr a ese elemento cuando paso por encima el puntero del mouse.
Código PHP:
miNodo.AddEvent ('mouseenter', function (ev) {
    
alert ('No uso console.log ... pero esta 100 veces mejor !'); 
A diferencia de las funciones normales, esta función no es invocada a mi antojo, si no que mi amigo el browser la llama justamente cuando hacemos mouseenter por sobre el área del elemtno HTML.

Teniendo esto claro ... ahora yo pregunto ... Puedo eliminar momentáneamente la ejecución de esa función previamente definida para el evento mouseleave ... y volver a habilitarla cuando yo quiera ?
Más allá de ser obstinado, he visto algunos métodos que supuestamente harían esa tarea, por ejemplo en mootools, existe removeEvent() y removeEvents(); pero no me funcionan como esperase.

Saludos y gracias.
PD: No soy gruñón, soy impotente en este tema (que lo sea en este no implica que no lo sea en otros planos ... tampoco lo contrario, Mejor no aclaro más) :D
__________________
| Cabeza De Raton |
  #7 (permalink)  
Antiguo 09/05/2008, 05:30
Avatar de Calisco  
Fecha de Ingreso: marzo-2004
Ubicación: Neuquen
Mensajes: 732
Antigüedad: 20 años, 1 mes
Puntos: 4
Re: Interrumpir eventos

Hice unas modificaciones usando una variable lógica que condiciona el evento ... funciona; pero creo que esto no termina aún.
Saludos.
__________________
| Cabeza De Raton |
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 14:39.