2012-09-13 15 views
5

Me gustaría cambiar solo uno de los elementos principales al pasar el mouse sobre las etiquetas <p>. El código es:jquery cómo cambiar solo un elemento principal al colocar el cursor sobre el elemento

$('.hover').each(function() { 
    $(this).parent().hover(function() { 
      $('p').parent(this).css('font-size','30px'); 
     }, function() { 
      $('p').parent(this).css('font-size','10px'); 
    }); 
}); 

y el HTML es:

<ul> 
     <li>1 <p class='hover'>xxxx</p></li> 
     <li>2 <p class='hover'>yyyy</p></li> 
    </ul> 

Cuando se ciernen sobre "xxxx", quiero "1" y "xxxx" para cambiar, pero "2" y "aaaa" no hacer nada, y cuando coloque el cursor sobre "yyyy", quiero que "2" e "yyyy" cambien pero "1" y "xxxx" no hacen nada.

Soy nuevo en jQuery.

+0

gracias por ayudarme pero no es realmente lo que quiero. hice volver a codificar y publicarlo de nuevo aquí. [link] (http://stackoverflow.com/questions/12418179/jquery-how-to-change-only-one-parent-closeset-a-tag-on-hover) Muchas gracias – ChooChu

+0

La próxima vez, use el botón "editar" debajo de tu pregunta. Esto te permite modificar tu pregunta. No es necesario crear una nueva pregunta para cada edición. En este momento tenemos una pregunta abierta con múltiples respuestas legítimas que es muy decepcionante si alguien termina aquí con la misma pregunta. –

Respuesta

0

Usted podría utilizar

$('p').closest('li').css('font-size','30px'); 
6
$('p.hover').parent().hover(function() { 
    $(this).children('p').css('font-size','30px'); 
}, function() { 
    $(this).children('p').css('font-size','10px'); 
}); 

Usted no tiene que utilizar un bucle de cada uno para agregar los elementos emergentes. Si tiene múltiples elementos seleccionados, aplicará el evento en todos los elementos.

Dicho todo esto, optimicé ligeramente su código.

He agregado el control deslizante sobre el elemento primario del párrafo, tal como lo hizo. Al usar $(this) en la devolución de llamada del evento, puedo seleccionar el elemento fijo y aplicar estilos a ese elemento.

Como deseo que el tamaño de letra se aplique en el párrafo, selecciono primero el elemento deseado.


Resumiendo arriba hasta:

  • Encontrar los elementos de los párrafos ($('p.hover'))
  • conseguirlo de los padres, el elemento li (.parent())
  • Aplicar el caso de la libración (.hover())

Una vez que se llama al evento hover:

  • Obtener elemento actual ($(this))
  • Encontrar el punto interior (.children('p'))
  • Aplicar estilos
0

Padres de <p> en su caso es <li>. Necesita:

$('.hover').parent().parent().hover(
    function() { 
     $(this).css('font-size','30px'); 
    }, function() { 
     $(this).css('font-size','10px'); 
    }); 
Cuestiones relacionadas