2009-09-19 21 views
11

Jestem stosunkowo nowy w JQuery i chciałbym móc wyświetlić menu na mouseover.JQuery Pokaż ukryj klasę na hover

Oto HTML

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

Następnie jQuery

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

Działa to z wyjątkiem stałych jestem ciągnięcie wiele komentarzy na zewnątrz i to tylko pokaże menu na pierwszym div bez względu na to, co "komentarz" jest najechany. Chciałbym, aby menu było wyświetlane tylko dla komentarza, nad którym obecnie znajduje się kursor. Myślę, że muszę użyć "$ this", aby to zadziałało, ale nie jestem pewien jak.

Dzięki.

Odpowiedz

18

Jeśli czytam, że właściwie format powinien być-

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

Edycja bo jestem kompletnym idiotą.

+0

Czy to nie pokaż/ukryj "comment_div"? Próbuję pokazać/ukryć "comment_actions" na hover. – BandonRandon

+0

Masz absolutną rację - jestem dziś w połowie śpiący i nie praktykuję. To * powinno * być teraz ustalone. –

+0

Dzięki, że działa teraz! – BandonRandon

2

Coś jak to działa na mnie:

<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> 

Jednak problem będziesz twarz jest najechaniu działania ponad div, który ma display: none; zestaw. Możesz rozważyć zawinięcie go w coś, co jest wrażliwe na mysz, a następnie wyświetlanie/ukrywanie dzieci.