为了账号安全,请及时绑定邮箱和手机立即绑定

用jQuery的css()方法修改样式后css样式里hover失效该怎么解决

用jQuery的css()方法修改样式后css样式里hover失效该怎么解决

.A1 a:link {     width: 20px;     height: 20px;     background-color: #FF8000;     border-radius: 23px;     border: 3px solid #FFFFFF;     position: absolute; } .A1 a:visited {     width: 20px;     height: 20px;     background-color: #FF8000;     border-radius: 23px;     border: 3px solid #FFFFFF;     position: absolute; } .A1 a:hover {     width: 20px;     height: 20px;     background-color: #FF8000;     border-radius: 23px;     border: 3px solid #FFFFFF;     position: absolute; }以上是css样式 $(document).ready(function() {     $(".B1").hover(function() {         $(".A a:link").css("background-color", "red");     }, function() {         $(".A a:link").css("background-color", "#FF8000");     }); });这是jQuery语句因为需要同时A1和B1来改变A1的样式.所以用jQuery写了B1改变A1的方法.但是B1hover触发后会导致A1的hover失效.应该是优先级之类的问题,但是请问如何解决-------------------------------------------------------------------------------------------------------------------------问题解决了,在css的hover中加入!important即可//话说没法把问题删了吗
查看完整描述

3 回答

已采纳
?
闹小志

TA贡献75条经验 获得超42个赞

说一说你写的样式的问题: 每个状态都有宽高,为什么不写在一个里呢?a标签虽然有这么多状态,可是并不是每个状态的样式我们都需要写一遍,可以统一写为:

.A1 a {
    width: 20px;
    height: 20px;
    background-color: #FF8000;
    border-radius: 23px;
    border: 3px solid #FFFFFF;
    position: absolute;
}

一旦状态不同要做区分的时候,比如hover的时候背景颜色要变红,你就可以这样写:

.A1 a {    
    width: 20px;    
    height: 20px;    
    background-color: #FF8000;    
    border-radius: 23px;    
    border: 3px solid #FFFFFF;    
    position: absolute;
}
.A1 a:hover{
    background-color:red;
}
查看完整回答
反对 回复 2016-05-09
?
weibo_哆啦A梦有大口袋_0

TA贡献107条经验 获得超146个赞

hover只能改变触发节点的样式或者触发节点的子元素的样式,不能改变其他节点的样式。建议使用mouseenter和mouseleave

查看完整回答
反对 回复 2016-05-09
  • qq_见过雪_0
    qq_见过雪_0
    根据您说的我去查了一下.好像hover就是mouseenter和mouseleave 这是看到的jQuery原码,不知道准不准确 hover: function( fnOver, fnOut ) { return this.mouseenter( fnOver ).mouseleave( fnOut || fnOver ); }
  • weibo_哆啦A梦有大口袋_0
    weibo_哆啦A梦有大口袋_0
    hover: function( fnOver, fnOut ) { return this.mouseenter( fnOver ).mouseleave( fnOut || fnOver ); } 这就代码的意思就是只能返回触发节点的样式或者有关触发节点的子元素的样式,mouseenter和mouseleave 没有封装,所以不一定要返回触发节点的样式
?
weibo_哆啦A梦有大口袋_0

TA贡献107条经验 获得超146个赞

不是优先级的问题,你没有理解hover这个方法的用法,这个方法只能触发节点的样式或者触发节点的子元素

查看完整回答
反对 回复 2016-05-09
  • 3 回答
  • 0 关注
  • 6084 浏览
慕课专栏
更多

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信