Jquery Psuedo选择器:仅当DIV具有特定类时才悬停
我有以下代码是在Jquery Psuedo选择器:仅当DIV具有特定类时才悬停,jquery,css,javascript-events,css-selectors,pseudo-class,Jquery,Css,Javascript Events,Css Selectors,Pseudo Class,我有以下代码是在DIV的鼠标悬停事件中触发的: if(!$this.hasClass('ready')) { if($this.hasClass('activated')) { $this.removeClass('activated'); } $this.addClass('ready');
DIV
的鼠标悬停事件中触发的:
if(!$this.hasClass('ready'))
{ if($this.hasClass('activated'))
{
$this.removeClass('activated');
}
$this.addClass('ready');
}
有更多的代码,但它基本上遵循与上面相同的概念模式。我检查一个类的存在性,只有当该类存在时,我才添加或删除其他类。这种情况发生在mouseover
上,其他情况发生在mouseout
上。所以有人建议我只使用CSS和:hover
。但是我有两种不同类型的DIV
,一种类型包含文本,因此类为“textBox”,另一种类型包含图像,因此类为“imgBox”
我想做一些像
div.imgBox .ready:hover
{ /* some style */ }
div.textBox .ready:hover
{ /* some style */ }
因此,如果鼠标悬停在div
s上,而它们没有类.ready
,那么什么也不会发生。这可能吗?我只是想切换到CSS以加速页面上的用户交互,因为有时候鼠标在离开或进入div
时会卡住,我想这可能是因为这个类改变了jQuery。我说得对吗
编辑
我忘了添加问题的一个重要部分-嵌套元素呢?
我的意思是,我有一个div
,它在悬停
时可以调整大小,当这种情况发生时,我希望以前透明的调整大小手柄获得彩色背景
<div class='imgbox'>
<div class='ui-resizable-se'></div>
...
</div>
这是可能的吗?如果type和ready类都位于同一个
div
上,则需要去掉这两个类之间的空格:
div.imgBox.ready:hover
{ /* some style */ }
div.textBox.ready:hover
{ /* some style */ }
如果需要设置嵌套元素的样式,只需在:hover
部分后添加空格:
div.imgBox.ready:hover .ui-resizable-se
{ /* some style */ }
如果type和ready类都位于同一个
div
,则需要去掉这两个类之间的空格:
div.imgBox.ready:hover
{ /* some style */ }
div.textBox.ready:hover
{ /* some style */ }
如果需要设置嵌套元素的样式,只需在:hover
部分后添加空格:
div.imgBox.ready:hover .ui-resizable-se
{ /* some style */ }
不能使用CSS添加或删除类。您只能根据CSS属性添加或删除样式。因此,如果要在鼠标上方修改某些
div
的外观,必须明确指定样式。不能使用CSS添加或删除类。您只能根据CSS属性添加或删除样式。因此,如果要在鼠标悬停时修改某些div
的外观,必须明确指定样式。应在悬停定义中指定:
$('div.ready').hover() {
// Your code goes here
}
这样,只有那些拥有ready类的div才会有一个悬停事件。否则,什么也不会发生您应该在悬停定义中指定:
$('div.ready').hover() {
// Your code goes here
}
这样,只有那些拥有ready类的div才会有一个悬停事件。否则,什么也不会发生你能添加你的标记吗?你能添加你的标记吗?我有个问题。如果我应用这个CSS,它是否比通过jQuery做同样的事情更高效/更快?是的,它是。CSS总是更快。我有个问题。如果我应用这个CSS,它是否比通过jQuery做同样的事情更高效/更快?是的,它是。CSS总是更快。