Ir para conteúdo

Arquivado

Este tópico foi arquivado e está fechado para novas respostas.

Wellington Soares

Chamar a mesma função jquery para vários elementos

Recommended Posts

Olá,

 

Eu quero aplicar uma função jQuery à um elemento "p", só que eu tenho vários elementos "p". Quando clico no manipulador de eventos todos os "ps" recebem a função.

$('li div img').click(function(){
  $('div p').slideToggle();
}).css("cursor","pointer");

Quero q ao clicar em uma imagem, o elemento p se esconda, tenho uma lista com um "img" e um "p", em cada li, quero q o p "p" que se esconda seja correspondente a imagem que foi clicada e os outros 'ps" fique inalterados.

 

Grato.

Compartilhar este post


Link para o post
Compartilhar em outros sites

[inline]this[/inline] é uma referência ao elemento clicado, no seu caso, a imagem, usando um objeto jQuery [inline]$( this )[/inline], e andando no DOM apartir dele (http://api.jquery.com/category/traversing/), você pode chegar ao elemento que deseja.

 

Por exemplo, digamos que você tenha a estrutura.

<ul>
    <li>
        <div>
            <img />
            <p></p>
        </div>
    </li>
</ul>

E exemplo de código:

$( 'li img' ).on( 'click', function ( evt ) {

    var $this = $( this ); //this = imagem clicada, $( this ) = novo objeto jQuery com a imagem clicada

    //como pode-se notar na estrutura, o p está logo depois da imagem, logo pode-se usar o metódo next()
    $this.next(); //o p, aqui você pode escondê-lo usando .hide() por exemplo.
    
    //ou pode voltar ao elemento pai (a div) e procurar pelo p filho.
    $this.parent().find( 'p' );
});

Compartilhar este post


Link para o post
Compartilhar em outros sites

×

Informação importante

Ao usar o fórum, você concorda com nossos Termos e condições.