私を困惑させた問題に遭遇しました。ユーザーがカーソルをテーブルの上に置いたときに、テーブルの行の境界線の色を変更したいと思います。
これが私のjQueryです:
$(document).on('hover', '.song', function()
{
$(this).toggleClass('highlightRow');
});
これが私のhtmlです:
<table border="1" style="padding-top:0px; margin-top:0px;">
<tr class="song"><td>test1</td></tr>
<tr class="song"><td>test2</td></tr>
<tr class="song"><td>test2</td></tr>
</table>
これがcssクラスです:
.highlightRow
{
cursor: pointer;
border: 2px solid red;
}
Chromeで完全に機能します。Firefoxでは、カーソルがポインタに変わるため、クラスが切り替わりますが、境界線の色が変わることはありません。そのためにjsFiddle(http://jsfiddle.net/5a9k2/7/)を作成しましたが、正常に動作します。これがFirefoxで機能しない理由を誰かに教えてもらえますか?
編集: 回答以下の回答のおかげで、TRには境界線を付けることができないことに気づきました。そうは言っても、動的要素で機能し続ける必要があり、ホバーしたものだけでなく、行のすべてを強調表示したかったので、機能した最後のJSは次のとおりです。
$(document).on('hover', 'tr.song', function()
{
$(this).children().toggleClass('highlightRow');
});