javascript - 使用 jquery 更改悬停时的背景颜色无法正常工作

标签 javascript jquery html css

我正在尝试使用 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");
});

我很感激任何关于如何解决这个问题的建议。谢谢。

最佳答案

这应该做你想做的:

示例:http://jsfiddle.net/jrDph/3/

$(".cat_name").hover(function() {
    $menuOption = $(this).closest(".menuOption");
    $menuOption.find(".sub_menu").show();
    $menuOption.css("background-color", "#bbb");
},
function() {
    $menuOption = $(this).closest(".menuOption");
    $menuOption.find(".sub_menu").hide();
    $menuOption.css("background-color", "#eee");
});​

关于javascript - 使用 jquery 更改悬停时的背景颜色无法正常工作,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10038657/

相关文章:

html - 边缘附近不透明度逐渐降低的框

javascript - 透明 Material 上的 Three.js/shadow 中的 Shadow Catcher

javascript - 如何从 google maps api 中删除 RichMarker 阴影类?

javascript - Kendo UI ,自动完成最大容量为 1000。我想增加这个

javascript - 如何加载标题,更改它,然后重定向到具有更新标题的页面?

javascript - 使用jquery在循环中分页上一个和下一个

javascript - 来自变量的实时测验分数

javascript - MongoDB:获取具有特定父ID和最高订单值的单个文档

javascript - 使用 JavaScript 跳过 YouTube 播放列表中的视频

html - HTML 5 可以拖放处理文件夹吗?