2010-01-27 5 views
1

Alors, voici ma situation. J'ai un site wordpress, et chaque entrée a un lien dans le post div.Cibler le div parent avec jQuery

<div class="post" id="post-133"> 
<h2><a href="post-link" rel="bookmark" title="Link to Post">Post</a></h2> 
<div class="post-date"> 
<span class="date">Tuesday, Jan. 26, 2010</span><span class="right read"><a href="#" class="noprint show_single" id="133">Read More</a></span> 
</div> 

J'ai la hauteur appliquée au CSS pour afficher seulement une certaine quantité de chaque message. Comment puis-je obtenir jQuery pour cibler l'élément parent afin d'ajouter une classe, montrant l'ensemble du message? Voici ce que j'ai jusqu'ici. Suis-je sur le bon chemin?

var $j = jQuery.noConflict(); 
var curr = (event.target).parent('div'); 
$j(function() { 
    $j('a.show_single').click(function() { 
$j('curr').toggleClass('show'); 
return false; 
    }); 
}); 

Répondre

0

l'intérieur de la fonction d'événement, utilisez la this mot-clé pour entrer dans le contexte approprié, puis vous traversez à travers le DOM pour trouver ce que vous cherchez:

var $j = jQuery.noConflict(); 
$j(function() { 
    $j('a.show_single').click(function() { 
     $j(this).parents('div.post').toggleClass('show'); 
     return false; 
    }); 
}); 
+0

Nice! Merci de votre aide! – werm

0
var $j = jQuery.noConflict(); 
$j(function() { 
    $j('a.show_single').click(function() { 
     $j(this).parents('div.post').toggleClass('show'); 
     return false; 
    }); 
}); 
+0

Cela ne fera rien, puisque paren directe de l'élément 'a' t est une "span". – SLaks

+0

Ouais, je l'ai réalisé et édité. –

0

Votre question est claire.

En supposant que vous voulez activer la classe show du div.curr contenant le a qui a été cliqué, vous pouvez appeler la méthode closest, comme ceci:

$j(this).closest('div.curr').toggleClass('show');