【发布时间】:2012-04-19 18:52:39
【问题描述】:
我正在尝试使用 JQuery 更改悬停时的 menuOption 背景颜色。我所有的代码都可以正常工作,我遇到的唯一问题似乎与 CSS 相关。当背景颜色改变时,它似乎只改变了文本的背景颜色,而不是整个 div,这就是我想要的。我发现奇怪的是,当我进入 menuOption 元素的内联 CSS 并手动更改背景颜色时,它会更改整个 div 的背景颜色(这是我想要的)。但是,我需要使用 JQuery 来实现。
标记片段
<div class='menuOption' style='list-style-type:none; border:1px solid red; float:left; width:180px; height:20px;'>
<a href='index.php/shop/$sub[cat_url]/' style='color:black;'>
<div class='cat_name'>$sub[cat_title]</div>
</a>
<div class='sub_menu' style='display:none; z-index:100; margin-top:-12px; position:absolute; background-color:#ddd; margin-left:182px; box-shadow:3px 3px 6px #444;'>$itemlist</div>
</div>
JQuery 代码段
$(".cat_name").hover(function(){
$(this).parent().parent().find(".sub_menu").show();
$(this, ".menuOption").css("background-color", "#bbb");
});
$(".cat_name").mouseleave(function(){
$(this, ".menuOption").css("background-color", "#eee");
});
感谢任何有关如何解决此问题的建议。谢谢。
【问题讨论】:
-
您能稍微整理一下您的示例吗?使用内联 css 读取 html 并且没有换行符会伤害我的眼睛 :)
-
我把它放到 JFiddle 中,它似乎工作正常(即,它改变了整个 div 的背景。我同意卢克的观点,你的代码有点呃......难以阅读。不管怎样,看看这个 JFiddle:jsfiddle.net/mhHUt
-
感谢您的回复:) 奇怪的是它在 jsfiddle.net 中运行良好,但在我的网站上却没有......
-
根据您描述的输出,问题可能出在边框或边距属性上。
标签: javascript jquery html css