11

私は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」を使用する必要があると思いますが、方法がわかりません。

4

2 に答える 2

18

私がそれを正しく読んでいれば、フォーマットは-

$(".comment_div").hover(
  function() { $(this).children(".comment_actions").show(); },
  function() { $(this).children(".comment_actions").hide(); }
);
于 2009-09-19T21:37:15.117 に答える
2

このようなものは私にとってはうまくいきます:

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

ただし、直面する問題は、display: none; set. マウスに反応するものでラップし、代わりに子を表示/非表示にすることを検討することをお勧めします。

于 2009-09-19T21:49:00.623 に答える