【发布时间】:2012-02-13 17:02:02
【问题描述】:
我正在尝试更改 lavalamp 菜单上文本的颜色我正在使用以下插件 http://www.queness.com/post/530/simple-lava-lamp-menu-tutorial-with-jquery
我所做的是以下
$('#lava').mouseleave(function () {
$('#lava li').removeClass('selected');
$('#lava li').css({color: '#FFF'});
//select the current item
$(this).addClass('selected');
$(this).css("color", "white");
});
但是,当鼠标离开时,它会将所有文本更改为黑色,这是正确的,但 $(this) 不会更改为白色
这是代码和工作演示的副本
【问题讨论】:
-
$(this) 应该是什么?因为,在您的代码中,看起来 $(this) 引用了一个 ul 元素。如果你想处理这个 ul 的 li,恐怕你的代码是错误的......
-
你能提供 JSFiddle 吗?您的代码看起来有效。
-
你能告诉我们你想要达到什么目标吗?
-
我不确定您的具体问题,但请学习并养成链接您的 jQuery 语句的习惯,例如$(this).addClass('selected').css("color","white");请参阅ejohn.org/blog/ultra-chaining-with-jquery 阅读起来更简洁,而且效率更高——每个 $(..) 构造一个新的 jquery 对象,重新找到该对象等。重复该工作没有任何意义。另外——好奇你在一种情况下使用 css({color: '#FFF'}) 而在另一种情况下使用 css("color", "white") ——这些是同一件事,在 3 行内表达不同是很奇怪的彼此...
-
当你指定它应该变成白色
$('#lava li').css({color: '#FFF'});时,所有文本变成黑色怎么可能是正确的?
标签: jquery css colors mouseleave