Jquery和:活动选择器
这是我的代码:Jquery和:活动选择器,jquery,html,css,css-selectors,Jquery,Html,Css,Css Selectors,这是我的代码: $('#ss a:active').parent().addClass('ss-active'); 我想你可以从我的代码中看出我想做什么,但它不起作用,我该怎么做?我还希望当用户从按钮上移除鼠标时,恢复到正常状态,我所说的“用户从按钮上移除鼠标”的意思是,用户只能按住按钮一段时间,并且应该看到:active语句 我不能用css实现这一点,因为我需要该的父级 //在这里,我是如何让它工作的 $('#solicita a').mousedown(function() {
$('#ss a:active').parent().addClass('ss-active');
我想你可以从我的代码中看出我想做什么,但它不起作用,我该怎么做?我还希望当用户从按钮上移除鼠标时,恢复到正常状态,我所说的“用户从按钮上移除鼠标”的意思是,用户只能按住按钮一段时间,并且应该看到:active
语句
我不能用css实现这一点,因为我需要该
的父级
//在这里,我是如何让它工作的
$('#solicita a').mousedown(function() {
if($(this).parent().hasClass('solicita-hover'))
{
$(this).parent().removeClass('solicita-hover');
$(this).parent().addClass('solicita-active');
}
}).mouseleave(function() {
$(this).parent().removeClass('solicita-active');
});
尝试使用mousedown()事件:
在jQuery中“:”是一个他们称之为元字符的字符。“:”后面的通常是jQuery选择器语法,如“:file”或“:has()”
“:active”是CSS伪类,因此使用“:”表示伪类与jQuery选择器语法要求相冲突
综上所述,您可以尝试使用jQueryAPI中建议的两个反斜杠来转义“:”。不过,我还没有试过 通过设置一个虚拟CSS关键帧,并在与正在侦听的选择器匹配时侦听animationstart事件,您实际上可以在体面的浏览器(Firefox、Chrome、IE10+)中侦听选择器规则匹配。这里有一篇博文深入探讨了它的本质,并提供了一个很小的文档/元素扩展addSelectorListener,以使其更易于使用:a为jQuery新手提供了详细的答案 您应该对Javascript中的事件发生顺序有一些了解。当浏览器看到您编写的脚本时,它会从上到下(大部分情况下)一次解析一行 因此,当它在jQuery中读取CSS()选择器时,它将查看您指定的选择器当前状态下的文档。这意味着,如果您编写
$('#my id div').addClass('some class')
,它将在该特定时刻在id为my id
的元素中查找div,并向其添加类
如果在#my id
中添加更多的div,它们将不会收到任何额外的类,因为浏览器最初读取该行Javascript时它们不在那里
因此,在最初的问题中,当询问者编写$('#ss a:active').parent().addClass('ss-active')
,浏览器仅在读取该行的毫秒处查找#ss a:active
因此,我们必须绑定Javascript事件,以便检测将来可能发生的事情
这就是为什么我们最终不得不做一些类似于
$('#ss a').mousedown(函数).mouseup(函数)
的事情。因为这会告诉jQuery和浏览器您正在等待(或)事件发生。您应该将twerq的解决方案标记为问题的答案
$('#ss a').mousedown(function() {
$(this).parent().addClass('ss-active');
}).mouseup(function() {
$(this).parent().removeClass('ss-active');
});