JQuery Показать скрыть класс при наведении - PullRequest
11 голосов
/ 20 сентября 2009

Я относительно новичок в JQuery и хотел бы показать меню при наведении курсора.

Вот HTML

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

Тогда JQuery

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

Это работает, за исключением того, что я вытаскиваю несколько комментариев, и это только покажет меню на первом div, независимо от того, какой "комментарий" наведен. Я хотел бы, чтобы меню отображалось только для комментария, который в данный момент находится над ним. Я думаю, что мне нужно использовать «$ this», чтобы сделать эту работу, но не уверен, как.

Спасибо.

Ответы [ 2 ]

18 голосов
/ 20 сентября 2009

Если я правильно читаю, формат должен быть-

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

Правка, потому что я полный идиот.

2 голосов
/ 20 сентября 2009

Как-то так у меня работает:

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

Однако проблема, с которой вы столкнетесь, заключается в наведении указателя мыши на действия над элементом div, который отображает: none; задавать. Возможно, вы захотите обернуть его во что-нибудь, чувствительное к мышке, и вместо этого отобразить / скрыть дочерние элементы.

...