【发布时间】:2020-09-18 20:10:29
【问题描述】:
我里面有一个 DIV 和一个 A 标签,像这样:
<DIV CLASS="product"><A HREF="...">blah</A></DIV>
当用户将鼠标悬停在 DIV 上时,我想更改“A”文本颜色,所以我的 CSS 是:
.product a { color:blue; }
.product:hover a { color:red; }
作为 CSS,有效。但我正在创建一个“模板配置器”,我想向用户显示预览,使用 jQuery 动态更改颜色,如下所示:
$('.product a').css('color','green');
$('.product:hover a').css('color','yellow');
什么都没有发生...在 Chrome 的检查器中,我可以看到定义为“已接受”。但是,如果我尝试阅读...
16:03:16.250 $('.product:hover a').css('color')
16:03:16.255 undefined
知道为什么以及如何解决吗?
更新
- 正常:“A”是绿色文本。 将鼠标悬停在 1 像素边框上触发 div:hover(鼠标不在“A”上)。
- 现在:“A”文本为红色。 移出 DIV 外。
- 现在:回到原来的绿色文本。
我想动态地将红色变为黄色,例如,使用 jQuery。
【问题讨论】:
-
我不清楚绿色是从哪里进入的?如果您在悬停产品时显示预览,则链接将变为黄色...
-
在图像中就像
.product a { color:green; }和.product:hover a { color:red; },我想动态地将红色更改为黄色,但$('.product:hover a').css('color','yellow');不起作用,没有任何反应。在最后的情况下,我希望在悬停 div 时显示正常的绿色和黄色。 -
好的,根据您的描述,听起来更改只发生在悬停 link 时,这就是为什么将蓝色更改为绿色没有意义 :) 我已经在您发表评论之前在下面添加了一个答案,所以我没有看到您的编辑(问题现在更清楚了) - 但是答案仍然适用。甚至可能比我最初想象的更合适!
-
@WOUNDEDStevenJones 不幸的是,这在 OP 的情况下不起作用,因为它会永久改变颜色(您可以在下面的一些答案中看到) - 他们只想应用临时颜色,所以他们'd 必须在 mouseover 上保存旧值并在 mouseout 上重新应用它们。
-
如果您正在寻找对该问题的解释,那是因为当您使用
.css()时,它会在选定的元素 api.jquery.com/css/#css2 上设置style属性,并且没有元素.product:hover,因为这是.product元素的悬停状态。为了更好地控制此类鼠标事件,链接的答案似乎提供了解决方案。
标签: javascript html jquery css