Foros del Web » Programando para Internet » Javascript »

Ignorar elementos anidados

Estas en el tema de Ignorar elementos anidados en el foro de Javascript en Foros del Web. Hola! El problema que tengo es que en ocasiones tengo elementos con instrucciones onmouseover y este elemento posee elementos adentro con textos algo así: @import ...
  #1 (permalink)  
Antiguo 09/11/2012, 12:03
Avatar de stramin  
Fecha de Ingreso: marzo-2008
Ubicación: Cubil felino
Mensajes: 1.652
Antigüedad: 16 años, 8 meses
Puntos: 336
Ignorar elementos anidados

Hola!

El problema que tengo es que en ocasiones tengo elementos con instrucciones onmouseover y este elemento posee elementos adentro con textos

algo así:
Código HTML:
Ver original
  1. <div onMouseOver="jQuery('#algo').algo='algo';'>
  2. <div>texto importante pero molesto</div>
  3. <div>otro texto importante pero molesto</div>
  4. <div>otro más</div>
  5. </div>

Al pasar el mouse por encima se ejecuta el onMouseOver, lo cual está bien, pero al mover el mouse sobre los textos se vuelve a ejecutar y mientras el usuario siga moviendo el mouse se sigue ejecutando una y otra vez.

Lo ideal es que solo se ejecute al pasar el mouse por encima y solo se vuelva a ejecutar al volver a poner el mouse encima, no al moverlo.

Espero que se entienda.

Se agradece cualquier aporte!
__________________
El objetivo de este foro es orientar al usuario como un favor y no como una obligación.

Yo soy de los que dan puntos por aporte :D

Última edición por stramin; 09/11/2012 a las 15:59
  #2 (permalink)  
Antiguo 12/11/2012, 05:24
Avatar de stramin  
Fecha de Ingreso: marzo-2008
Ubicación: Cubil felino
Mensajes: 1.652
Antigüedad: 16 años, 8 meses
Puntos: 336
Respuesta: Ignorar elementos anidados

nadie sabe o no se entendio?
__________________
El objetivo de este foro es orientar al usuario como un favor y no como una obligación.

Yo soy de los que dan puntos por aporte :D
  #3 (permalink)  
Antiguo 12/11/2012, 05:51
Avatar de IsaBelM
Colaborador
 
Fecha de Ingreso: junio-2008
Mensajes: 5.032
Antigüedad: 16 años, 5 meses
Puntos: 1012
Respuesta: Ignorar elementos anidados

partamos de que hay un error de sintaxis
Cita:
onMouseOver="jQuery('#algo').algo='algo';'
ahora supondré lo que hace ese código. asigna un valor a un atributo x de un elemento cuya id es #algo y el evento que invoca es onmouseover, no onmousemove. entonces no comprendo ese comportamiento
__________________
if(ViolenciaDeGénero) {alert('MUJER ASESINADA');}
  #4 (permalink)  
Antiguo 12/11/2012, 06:32
Avatar de stramin  
Fecha de Ingreso: marzo-2008
Ubicación: Cubil felino
Mensajes: 1.652
Antigüedad: 16 años, 8 meses
Puntos: 336
Respuesta: Ignorar elementos anidados

Tienes razón! me faltaba esa comilla en el ejemplo XD

Bueno lo pondré de una forma más facil, si pruebas este código:

Código HTML:
Ver original
  1. <script type="text/javascript">var x=0;</script>
  2. <div onmouseover="x++;document.getElementById('veces').innerHTML=x;" style="background-color:#FF9900;">
  3.     <div>se ha invocado</div>
  4.     <div id="veces">0</div>
  5.     <div>veces en total</div>
  6. </div>

y mueves el mouse entre los 3 textos, sin salir del div contenedor (el fondo naranjo) verás que el contador que he puesto se aumenta, siendo que no se ha sacado el mouse del contenedor.

Lo que necesito es una forma de evitar que suceda esto, o sea que el evento mouseover se ejecute solo una vez al entrar en el div contenedor y solo se vuelva a ejecutar al volver a entrar.
__________________
El objetivo de este foro es orientar al usuario como un favor y no como una obligación.

Yo soy de los que dan puntos por aporte :D
  #5 (permalink)  
Antiguo 12/11/2012, 07:10
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, 6 meses
Puntos: 1485
Respuesta: Ignorar elementos anidados

buenas,
este tema ya se ha discutido varias veces. revisa el siguiente tema, http://www.forosdelweb.com/showthread.php?t=984776.
__________________
la maldad es una virtud humana,
y la espiritualidad es la lucha del hombre contra su maldad.
  #6 (permalink)  
Antiguo 12/11/2012, 07:43
Avatar de stramin  
Fecha de Ingreso: marzo-2008
Ubicación: Cubil felino
Mensajes: 1.652
Antigüedad: 16 años, 8 meses
Puntos: 336
Respuesta: Ignorar elementos anidados

Entiendo, planteandolo de esa forma he intentado hacer una condición para que solo se vuelva a ejecutar tras un evento onmouseout, sin embargo he comprobado que también se llama a ese evento al mover el mouse.

Me temo que la única solución sea hacer elementos con onmouseover fuera de este para detener la función :(

Muchas gracias zerokilled :D
__________________
El objetivo de este foro es orientar al usuario como un favor y no como una obligación.

Yo soy de los que dan puntos por aporte :D
  #7 (permalink)  
Antiguo 12/11/2012, 08:52
Avatar de IsaBelM
Colaborador
 
Fecha de Ingreso: junio-2008
Mensajes: 5.032
Antigüedad: 16 años, 5 meses
Puntos: 1012
Respuesta: Ignorar elementos anidados

yo en estos casos me apoyo mas en el css que en javascript
Cita:
<script type="text/javascript">var x=0;</script>
<div style="background-color:#FF9900; position: relative;">
<div onmouseover="x++;document.getElementById('veces'). innerHTML=x;" style="position: absolute; width: 100%; height: 100%"></div>
<div>se ha invocado</div>
<div id="veces">0</div>
<div>veces en total</div>
</div>
__________________
if(ViolenciaDeGénero) {alert('MUJER ASESINADA');}
  #8 (permalink)  
Antiguo 12/11/2012, 09:03
Avatar de stramin  
Fecha de Ingreso: marzo-2008
Ubicación: Cubil felino
Mensajes: 1.652
Antigüedad: 16 años, 8 meses
Puntos: 336
Respuesta: Ignorar elementos anidados

excelente solución!

muchas gracias IsaBelM
__________________
El objetivo de este foro es orientar al usuario como un favor y no como una obligación.

Yo soy de los que dan puntos por aporte :D
  #9 (permalink)  
Antiguo 12/11/2012, 16:25
(Desactivado)
 
Fecha de Ingreso: noviembre-2002
Ubicación: Ciudad Autónoma de Buenos Aires
Mensajes: 2.367
Antigüedad: 22 años
Puntos: 317
Respuesta: Ignorar elementos anidados

Simple y brillante la solución, IsaBelM. Igual hay que aclarar que la capa con el evento cubriendo todo el div con los textos ya no permite ni seleccionarlos con el máus; que aquí no es grave, pero si hubiese botones o campos editables ya es un problema.

Aprovecho que estoy, y dejo otro enlace con algo parecido.

Problemas con onMouseOut
  #10 (permalink)  
Antiguo 13/11/2012, 08:59
Avatar de stramin  
Fecha de Ingreso: marzo-2008
Ubicación: Cubil felino
Mensajes: 1.652
Antigüedad: 16 años, 8 meses
Puntos: 336
Respuesta: Ignorar elementos anidados

Buena observación, no se puede copiar el texto XD
__________________
El objetivo de este foro es orientar al usuario como un favor y no como una obligación.

Yo soy de los que dan puntos por aporte :D

Etiquetas: anidados, elementos, ignorar
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 21:21.