jQuery .addClass 不会改变 css
理想情况下,我想将鼠标悬停在菜单中的
上,并突出显示每个
非常感谢。
.dropdownhoverIn a:hover
{
background-color: White;
color: #39C;
}
<form id="form1" runat="server">
<div id="multiDropMenu">
<ul id="menu">
<li><a href="#" id="places">Places</a>
<ul id="dropdown1">
<li><a href="http://google.com">To Go</a></li>
<li><a href="#">To See</a></li>
</ul>
</li>
<li><a href="#">Transportation</a></li>
</ul>
</div>
</form>
$(document).ready(function() {
$("#menu li").hover(function() {
$(this).find("ul").find("a").hover(function() {
$(this).addClass("dropdownhoverIn");
});
$(this).find("ul").slideToggle(250);
});
});
Ideally I want to hover over my <li>
in my menu and highlight each <li>
but as a test I have the following to change the class on hover. Any thoughts why this won't work?
Thanks so much.
.dropdownhoverIn a:hover
{
background-color: White;
color: #39C;
}
<form id="form1" runat="server">
<div id="multiDropMenu">
<ul id="menu">
<li><a href="#" id="places">Places</a>
<ul id="dropdown1">
<li><a href="http://google.com">To Go</a></li>
<li><a href="#">To See</a></li>
</ul>
</li>
<li><a href="#">Transportation</a></li>
</ul>
</div>
</form>
$(document).ready(function() {
$("#menu li").hover(function() {
$(this).find("ul").find("a").hover(function() {
$(this).addClass("dropdownhoverIn");
});
$(this).find("ul").slideToggle(250);
});
});
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(1)
摆脱
类上的“内部”
.hover()
赋值和:hover
伪选择器。尝试一下: http://jsfiddle.net/GKZRU/
当您调用
.hover()
函数参数,您分配一个处理程序。没有理由在每次将鼠标悬停在上时执行此操作。
如果您使用 jQuery 的
.hover()
,则 CSS 中并不需要它。如果您希望它存在以实现兼容性,则需要一个单独的 CSS 选择器。我还将
>
添加到.hover()
的选择器中,因为我假设您希望它仅在#menu
的子级上激活。Get rid of the "inner"
.hover()
assignment,and the
:hover
pseudo selector on your class.Try it out: http://jsfiddle.net/GKZRU/
When you call
.hover()
a function parameter, you are assigning a handler. There's no reason to do that on each hover over the<ul>
.And if you're using jQuery's
.hover()
, you don't really need it in the CSS. If you want it there for compatibility, you need a separate CSS selector for it.I also added
>
to the selector for the.hover()
since I assume you want it to activate only on the child of#menu
.