Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/jquery/70.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/visual-studio-2012/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Jquery 禁用a:当某些元素可见时悬停样式;_Jquery_Css - Fatal编程技术网

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; }