Foros del Web » Programando para Internet » Jquery »

JQUERY: mouseover a un elemento específico con una clase común

Estas en el tema de JQUERY: mouseover a un elemento específico con una clase común en el foro de Jquery en Foros del Web. ¡Hola! Estoy iniciándome en JQUERY y me he encontrado con el primer inconveniente: no sé cómo seleccionar un elemento específico que contiene una clase común. ...
  #1 (permalink)  
Antiguo 02/08/2011, 16:17
Avatar de Gguer  
Fecha de Ingreso: abril-2009
Mensajes: 125
Antigüedad: 15 años
Puntos: 1
JQUERY: mouseover a un elemento específico con una clase común

¡Hola!

Estoy iniciándome en JQUERY y me he encontrado con el primer inconveniente: no sé cómo seleccionar un elemento específico que contiene una clase común. Es decir, genero una galería de imágenes y al pasar el cursor sobre alguna de ellas quiero que se muestre información específica de ella. Generé dos cajas div que contienen tal información, pero inicialmente tienen un valor display:none. Al llamar a la funcion mouseover sí se muestran las cajas de esa imagen, pero también lo hacen las cajas de todas las demás. Lo que deseo es enviar la referencia de la imagen que tiene el cursor sobre ella y que sólo de esa imagen se muestre la información

¿Es posible hacerlo con jquery? Lo que se me ocurre es crear una función con JavaScript y usar el evento onmouseover pasando "this" como referencia a esa imagen, pero en honor a la limpieza y por la curiosidad de entrar al mundo JQuery quería ver si existe otra manera.

Gracias.

Saludos.
  #2 (permalink)  
Antiguo 03/08/2011, 08:24
 
Fecha de Ingreso: diciembre-2009
Ubicación: Misiones
Mensajes: 867
Antigüedad: 14 años, 4 meses
Puntos: 65
Respuesta: JQUERY: mouseover a un elemento específico con una clase común

no sé tu estructura pero sería algo así

Código HTML:
Ver original
  1.   <script src="https://ajax.googleapis.com/ajax/libs/jquery/1.6.2/jquery.min.js"></script>
  2.   <script>
  3.     $( function() {
  4.  
  5.         $('.galeria').mouseover(function(){
  6.             $('div', this).show();
  7.         }).mouseout( function(){
  8.             $('div', this).hide();
  9.         });
  10.  
  11.     });
  12.     </script>
  13.     <style>
  14.         .galeria {height:200px; width:200px; float:left; background:#ccc; margin:10px}
  15.         .galeria div{display:none}
  16.     </style>
  17. </head>
  18. <div class="galeria">
  19.     Uno
  20.     <div>Descripción 1</div>
  21. </div>
  22.  
  23. <div class="galeria">
  24.     Dos
  25.     <div>Descripción 2</div>
  26. </div>
  27.  
  28. <div class="galeria">
  29.     Tres
  30.     <div>Descripción 3</div>
  31. </div>
  32.  
  33. </body>
  34. </html>
  #3 (permalink)  
Antiguo 03/08/2011, 09:14
Avatar de Gguer  
Fecha de Ingreso: abril-2009
Mensajes: 125
Antigüedad: 15 años
Puntos: 1
Respuesta: JQUERY: mouseover a un elemento específico con una clase común

Muchas gracias, Dany_s, ya está solucionado.

Me surgen algunas dudas:

Código HTML:
<div class="imagen">
	<div class="encabezado-img">Encabezado</div>
	<div class="miniaturas">
		<img src="servidor/img.jpg" class="img-miniatura" />
	</div>
         <div class="pie-img">Pie de imagen</div>
</div> 
Esa es la estructura básica del contenido que se genera por cada imagen. Una pregunta es: agregar this como parámetro, además del nombre de la clase, ¿es redundante? Es decir, enviar un $('.imagen', this).mouseover(... en lugar de sólo enviar un parámetro.

Éste es el código JQuery que hace otorga la funcionalidad:

Código Javascript:
Ver original
  1. $(document).ready(function() {
  2.     $(".imagen").mouseover(function(event) {
  3.         $(".encabezado-img", this).show();
  4.         $(".pie-img", this).show();
  5.     });
  6.     $(".imagen").mouseout(function(event) {
  7.         $(".encabezado-img,.pie-img", this).hide();
  8.         $(".pie-img", this).hide();
  9.     });
  10. });

Otra duda es: ¿el unir las funciones
Código:
mouseover
y
Código:
mouseout
con un punto (.) es lo que se conoe como callback?

Gracias por la respuesta. Buen día.

Última edición por Gguer; 03/08/2011 a las 09:16 Razón: Correción de nombres
  #4 (permalink)  
Antiguo 03/08/2011, 15:53
 
Fecha de Ingreso: diciembre-2009
Ubicación: Misiones
Mensajes: 867
Antigüedad: 14 años, 4 meses
Puntos: 65
Respuesta: JQUERY: mouseover a un elemento específico con una clase común

los dos parámetros son para indecarle los elementos a seleccionar dentro de un contexto, o sea que seleccione .encabezado-img dentro del elemento que generó el evento, que es como $(this).find('.encabezado-img')

esto
Código Javascript:
Ver original
  1. $(".encabezado-img", this).show();
  2. $(".pie-img", this).show();
podés hacer
Código Javascript:
Ver original
  1. $(".encabezado-img, .pie-img", this).show();

como lo tenés en el mouseout

mouseover devuelve el objeto jquery y con el punto hago encadenamiento, para no volver a seleccionar $(".imagen")
  #5 (permalink)  
Antiguo 04/08/2011, 07:40
Avatar de Gguer  
Fecha de Ingreso: abril-2009
Mensajes: 125
Antigüedad: 15 años
Puntos: 1
Respuesta: JQUERY: mouseover a un elemento específico con una clase común

Muy bien. Agradezco tu tiempo, Dany_s, ya ha quedado aclarado todo.
Un saludo.

Etiquetas: clase, javascript, mouseover
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 20:10.