禁用:单击鼠标悬停

fro*_*sty 14 javascript css jquery

我有一个div悬停:

.div {
  // css
}
.div:hover {
  // css
}
Run Code Online (Sandbox Code Playgroud)

但是我想在你点击时禁用悬停div.

SW4*_*SW4 19

选项1. Javascript解决方案

只需添加一个禁止在点击时应用悬停样式的类:

$('div').on('click', function() { // when you click the div
  $(this).addClass('no-hover'); // add the class 'no-hover'
});
Run Code Online (Sandbox Code Playgroud)
div {
  color: blue;
}
div:not(.no-hover):hover { /* only apply hover styling when the div does not have the class 'no-hover' */
  color: red;
}
Run Code Online (Sandbox Code Playgroud)
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
<div>hover!</div>
Run Code Online (Sandbox Code Playgroud)

选项2. CSS解决方案

或者,在纯CSS中(尽管没有规则持久性)

div {
  color: blue;
}
div:not(:focus):hover {
  color: red;
}
div:focus {
  outline: none;
}
Run Code Online (Sandbox Code Playgroud)
<div tabindex="0">hover!</div>
Run Code Online (Sandbox Code Playgroud)