![]() |
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 :molesto:). 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. :-D |
Re: Interrumpir eventos Cita:
|
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 ! :adios: |
Re: Interrumpir eventos Ya la consulté ... saludos y gracias. |
Re: Interrumpir eventos Hola Calisco: Me parece que estoy en ese grupo del que pides abstinencia :neurotico, 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. :risa: Saludos :arriba: |
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>Código PHP: Código PHP: 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 |
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. |
| La zona horaria es GMT -6. Ahora son las 19:04. |
Desarrollado por vBulletin® Versión 3.8.7
Derechos de Autor ©2000 - 2026, Jelsoft Enterprises Ltd.