【问题标题】:Jquery disables css :hover effectJquery 禁用 css :hover 效果
【发布时间】:2014-05-06 01:55:00
【问题描述】:

我有几张链接的照片设置为(不透明度:0.45),除了悬停和点击时(不透明度:1)。我还有一个 JQuery 函数来监听点击,然后将点击照片的 css 更改为(不透明度:1),其余的改回(不透明度:0.45)。然而,一旦函数运行,悬停效果就会以某种方式被禁用。有什么想法吗?

HTML:

<a class="img_thumbs"><img src="someimage.jpg"></a>

CSS:

.img_thumbs:hover {
      opacity:1;
}

.img_thumbs {
      opacity:0.45;
}

jQuery:

$('.img_thumbs').click(function(){
    event.preventDefault();
    $('.img_thumbs').css({'opacity': '0.45'});
    $(this).css({'opacity': '1'});
}):

我试过了:

  • 在函数内外添加 JQuery .hover() 效果
  • 将选择器、css、html 分别和一起更改为 a.img_thumbs
  • 寻找代码失败的地方

该函数还运行 AJAX 调用和其他几个侦听器,但我确定它们没有任何不利影响(已将它们注释掉),因此问题仅在于我提供的代码。

也将不胜感激地接受替代解决方案,提前致谢。

【问题讨论】:

  • 可以提供jsfiddle吗?谢谢。
  • jsfiddle.net/C8R7f 它不像我拥有的​​那样工作..
  • 所以目前您的问题是单击图像后悬停不透明度不起作用?不过,您的 jsfiddle 似乎可以正常工作。
  • 在我的实际项目中,当我选择一张照片时,它会将不透明度更改为 1,而其他照片仍然不透明,但是悬停效果不再起作用...jsfiddle.net/C8R7f/1
  • 想知道为什么要在单击 img 时阻止默认设置?可能是它搞砸了,可以试着把它拿出来。

标签: javascript jquery html css


【解决方案1】:

使用这个:

CSS:

.img_thumbs:hover {
  opacity:1;
}
.active {
      opacity:1 !important;
}
.img_thumbs {
      opacity:0.45;
}

JS:

$('.img_thumbs').click(function(event){
    event.preventDefault();
    $('.img_thumbs').removeClass( "active" )
    $(this).addClass( "active" );
});

提示是使用其他活动类,点击时添加或删除该类。

【讨论】:

  • 在您的代码中,点击元素的状态未注册,因此出现了奇怪的行为
  • "!important" 覆盖 jQuery 创建的其他 css
猜你喜欢
  • 2022-01-24
  • 2013-08-17
  • 2013-01-17
  • 1970-01-01
  • 1970-01-01
  • 2015-02-28
  • 2011-12-22
  • 2012-01-23
相关资源
最近更新 更多