首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >元素如果单击两次将失去悬停属性。

问元素如果单击两次将失去悬停属性。
EN

Stack Overflow用户
提问于 2019-08-25 18:04:52
回答 2查看 32关注 0票数 1

​

代码语言:javascript
复制
var rem = 0;

$('#labrem').on('click', function(){
	if(rem == 0){$(this).css('background', 'white'); rem = 1;}
	else{$(this).css('background', '#eee');	rem = 0;}
});
代码语言:javascript
复制
.labrem{background:#eee;cursor:pointer;}
.labrem:hover{background:white;}
代码语言:javascript
复制
<script src="https://cdnjs.cloudflare.com/ajax/libs/jquery/3.3.1/jquery.min.js"></script>

<div class='labrem' id='labrem'>remember me</div>

​

首先,鼠标悬停在rem上看-悬停工作.

然后在rem上单击两次鼠标,然后再次将鼠标悬停-鼠标悬停不起作用。

这里有什么神圣的秘密?

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2019-08-25 18:13:56

这种行为是由使用内联样式引起的。当两次单击元素时,背景将被设置为#eee或white。因为inline styles覆盖css rules,所以:hover永远不会被应用。

为了能够持久化,可以使用white类:

​

代码语言:javascript
复制
$('#labrem').on('click', function(){
	$(this).toggleClass('activated')
});
代码语言:javascript
复制
.labrem{background:#eee;cursor:pointer;}
.labrem:hover{background:white;}

.activated{
  background-color: white;
}
代码语言:javascript
复制
<script src="https://cdnjs.cloudflare.com/ajax/libs/jquery/3.3.1/jquery.min.js"></script>

<div class='labrem' id='labrem'>remember me</div>

​

票数 1
EN

Stack Overflow用户

发布于 2019-08-25 18:14:09

内联样式比类选择器具有更高的优先级(特异性)

当您单击值或rem设置为1时,现在当您第二次单击它到higher条件并将背景设置为#eee时,您不会看到悬停效果,因为内联样式比类选择器具有更高的优先级

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/57648496

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档