は、私がホバー上の国境に点灯した細胞を持つテーブルを持っている状況
を記述するためfiddleです:jQueryを使用してCSSルールを無効にする方法は?ここ
table td:hover {
border: 2px solid #3d8b40;
}
そのうちの一つが押されたとき、私はそれが永久的な境界線を持つようにしたいですアクティブになっている間(次のクリックまで)、他のセルの照明を無効にしたいと思います。
は問題は、すべての細胞に活性化の間に境界線を防ぎクラス与えるために簡単な解決策があるようです:
.no-border:not(.active):hover {
border: inherit !important;
}
をしかし、細胞がたくさんあると私は怖いことで、非常に多くのクラスをトグル一度パフォーマンスに影響を与える可能性があります。
は、その後、私はまた、このアプローチを試してみました: - 私が指していた1、私はこのルールを普及する方法を見つけ出すことができませんでした
$('td').click(function() {
if ($(this).hasClass('active')) {
$('table td:hover').css('border', 'inherit');
}
else {
$('table td:hover').css('border', '2px solid #3d8b40');
}
}
それに伴う問題は:hover
セレクタが一つだけのセルをターゲットにということでしたそれらのすべて。基本的には、HTML要素にインラインスタイルを追加することです。これは、パフォーマンスを考慮する場合にクラスを追加するよりも優れていません。
問題をどのように解決できますか?
たぶんコンテナ要素に代わりのすべてのセルにクラスを追加しますか? – gyre
インラインでCSSを上書きすることは重要ですか? attr( 'style'、 ':hover {"border": "inherit!important"}') '$( 'table td' – TypedSource