0
<tr onmouseover="$('#actions').show();" onmouseout="$('#actions').hide();" >
    <td>
        <a onclick="showContacts();">Group Name</a>
    </td>
    <td>
        <span id="actions" style="display:none;">
            <img src="../images/Delete-icon.png" onclick="del();"/>
            <img src="../images/add-16.png" onclick="loadpage('contacts.php');" />
            <img src="../images/mail.png" onclick="send();" />
        </span>
    </td>
</tr>

これは私のコードです。<td>がホバーされたときに、2番目に3つの画像を表示しようとしてい<tr>ます。画像は、最初はテキストにカーソルを合わせると表示されます<td>が、マウスがテキストから離れると消えます。これは私の FF (v3.6) でのみ発生しますが、IE と Chrome では問題なく動作します。誰かがこれを解決するのを手伝ってくれますか?

4

2 に答える 2

5

おそらく、カーソルがtdテキストを含む要素を離れるとすぐに、イベントが発生し、親要素mouseoutにバブルアップしてそこで処理されるためです。tr

jQuery の方法で行います。HTML コードにイベント ハンドラーを追加しないでください。

$(function() {
    $('tr').hover(function() { // <- select the right tr here, by e.g. giving it an ID
        $('#actions').toggle();
    });
}

参考文献:.hover().toggle()

他の要素についても同様です。ビュー (HTML コード) とロジック (JavaScript) が分離されているため、コードがすっきりします。


また、ID は HTML ドキュメント内で一意でなければならないため、ID を持つ別の要素を持つことはできませんaction。あなたのコードが表の行を示しているように、要素を持つ他の行があるように見えるので、私はこれを言っています#action. その場合は、それをクラスにして、それに応じてセレクターを調整します。

于 2010-07-19T12:08:04.070 に答える
1

控えめなjavascriptの明るく輝く道に来てください。私たちは皆ここで気球などを手に入れました。とても楽しいです!:)

真剣に、インライン イベント ハンドラーを使用する代わりに、目立たないようにすべてを行うことを検討してください。たぶん、すべての問題は後で吹き飛ばされます。

于 2010-07-19T12:08:33.567 に答える