2009-09-19 6 views
11

Je suis relativement nouveau à JQuery et j'aimerais pouvoir afficher un menu sur mouseover.JQuery Show hide class sur hover

Voici le code html

<td class ="comment_div"> <?php echo("$comment_data['comment']); ?> <br/> 
    <span class="comment_actions"> Approve | Delete | Spam | Edit</span> 
</td> 

Puis le JQuery

$("comment_div").hover(
     function() { $(".comment_actions").show(); }, 
     function() { $(".comment_actions").hide(); } 
); 

Cela fonctionne pour eXept je tire plusieurs commentaires sur ce qui ne montre que le menu sur la première div peu importe "comment" est hoverd. Je voudrais avoir le menu seulement pour le commentaire qui est actuellement en train de planer. Je pense que je dois utiliser "$ this" pour faire ce travail mais je ne sais pas comment.

Merci.

Répondre

18

Si je lis correctement que le format doit être-

$(".comment_div").hover(
    function() { $(this).children(".comment_actions").show(); }, 
    function() { $(this).children(".comment_actions").hide(); } 
); 

Modifier parce que je suis un idiot.

+0

Est-ce que ça ne montrerait pas/cacherait "comment_div"? J'essaie de montrer/cacher "comment_actions" sur hover. – BandonRandon

+0

Vous avez absolument raison - je suis à moitié endormi aujourd'hui et hors de la pratique. Cela * devrait * être réparé maintenant. –

+0

Merci cela fonctionne maintenant! – BandonRandon

2

Quelque chose comme cela fonctionne pour moi:

<script> 
$(document).ready(function() { 
$(".container").hover(
     function() { $(this).children('.comment_actions').show(); }, 
     function() { $(this).children('.comment_actions').hide(); } 
); 

}); 

</script> 

<style> 

</style> 


<table border="1"><tr> 
<td class ="container"><br/> 
    asd<span class="comment_actions">Approve | Delete</span> 
</td> 
<td class ="container"><br/> 
    asd <span class="comment_actions">Approve | Delete</span> 
</td> 
<td class ="container"><br/> 
    asd<span class="comment_actions"> Approve| Delete</span> 
</td> 
</tr></table> 

Cependant, la question que vous devrez faire face est planer des actions sur une div qui a display: none; ensemble. Vous pourriez envisager de l'entourer de quelque chose qui est sensible à la souris, puis d'afficher/cacher les enfants à la place.