Jquery 禁用a:当某些元素可见时悬停样式;
多亏了尼克·克雷弗,我才成功了。它所做的是,根据某个事物的可见状态隐藏一个类Jquery 禁用a:当某些元素可见时悬停样式;,jquery,css,Jquery,Css,多亏了尼克·克雷弗,我才成功了。它所做的是,根据某个事物的可见状态隐藏一个类 $('#btCategoriaA').click(function() { $('#listaCategoriaA').slideToggle('slow', function() { $('#btCategoriaA').toggleClass('selecionado', $(this).is(':visible')); }); }); 基于同样可见的东西,我想“禁用”a:悬停,或者清空a:悬停线
$('#btCategoriaA').click(function() {
$('#listaCategoriaA').slideToggle('slow', function() {
$('#btCategoriaA').toggleClass('selecionado', $(this).is(':visible'));
});
});
基于同样可见的东西,我想“禁用”a:悬停,或者清空a:悬停线。。。不知道怎么做。要点是:如果某个东西是可见的,不要应用css的a:悬停
这里有线索吗
编辑
我有以下css:
#listaCategorias li.categoriaA a:hover {
background-position: 0px -79px;
}
#listaCategorias li.categoriaA a:active {
background-position: 0px -158px;
}
#listaCategorias li.categoriaA .selecionado {
background-position: 0px -158px;
}
以及HTML部分:
<ul id="listaCategorias">
<li class="categoriaA"><a id="btCategoriaA" href="#">Categoria A</a></li>
<li class="categoriaB"><a id="btCategoriaB" href="#">Categoria B</a></li>
<li class="categoriaC"><a id="btCategoriaC" href="#">Categoria C</a></li>
</ul>
谢谢,
MEM最简单的解决方案是将
a:hover
选择器更改为a.selecionado:hover
,这将导致:hover
规则仅在元素具有该类时匹配该元素
编辑:Javascript: CSS:
您可以使用
:hover
为新类提供原始样式,例如:
a, a.selecionado:hover { color: black }
a:hover { color: red; }
这样一来,
a.selecionado:hover
选择器更加具体,因此原始的非悬停样式胜出。@SLaks-谢谢。这对js代码来说意味着什么?@MEM:没什么。只要改变CSS。@SLaks-我明白了!!由于该类将仅应用于所需条件,因此我们将css更改为也将悬停效果应用于相同的所需条件。是吗我得到了与预期相反的效果(@MEM:然后您可以添加第二个类并反向切换它。(例如,a.NotSelected:hover{…}
)。我用更多的代码更新了我的问题,也许从那里可以很容易地得到这个…:s关于代码,你会怎么做?@MEM-添加到你的选择器中,使#listaCategorias li.categoriaA a:active
变成#listaCategorias li.categoriaA:active,#listaCategorias li.categoriaA.selecionado:hover
,所以位置是s即使在悬停更具体的选择器时也会滴答声。非常感谢。它很有效。因为这是一个向下滑动的效果,如果您能理解我的话,需要一些时间才能打开可见性。我尝试使用.click.So,而不是$(this.is(“:visible”);我们可以有$(这个)。点击吗?这只是在slideUp或slideDown结束时更改类。所以,我改变了顺序,这样他一按就改变了类,然后,做幻灯片。这几乎是可行的:它适用于slideDown部分,但是,该类不在slideUp上运行($('#btCategoriaA')。单击(function(){('#btCategoriaA')。toggleClass('selecionado',$(this.is(':visible'));$('listaCategoriaA')。slideToggle('slow',function(){});)我最终得到类似这样的东西:$('btcategoriaaa')。单击(function(){('selecionado'.'btCategoriaA')。toggleClass('selecionado')$(“#listaCategoriaA”).slideToggle('slow',function(){})});因此,我删除了可见部分,因为如果我这样做,该类将仅在动画结束时应用,并且该延迟不是有意的。非常感谢您的耐心。:D
a.NotSelected:hover {
color: pink;
}
a, a.selecionado:hover { color: black }
a:hover { color: red; }