我可以执行$(this).children("a").addClass("class")
并且它可以正常工作,但是当我执行$(this).addClass("class")
时它无效。我在鼠标悬停功能中使用$(this)
。
$("#site nav li.hasChild").mouseover(function ()
{
$(this).children("a").addClass("selectedTab"); // works fine
$(this).addClass("selectedFixTab"); // does not work
$(this).children("ul").css("display", "block");
});
HTML:
<header id="site">
<nav>
<ul>
<li id="Li1" class="hasChild">
<a href="#">Fix</a>
<ul>
<li><a href="#">1</a></li>
<li><a href="#">2</a></li>
<li><a href="#">3</a></li>
<li><a href="#">4</a></li>
<li><a href="#">5</a></li>
</ul>
</li>
<li id="Li2" class="hasChild">
<a href="#">Learn</a>
<ul>
<li><a href="#">1</a></li>
<li><a href="#">2</a></li>
<li><a href="#">3</a></li>
<li><a href="#">4</a></li>
</ul>
</li>
<li id="Li3">
<a href="contact.htm">Contact</a>
</li>
</ul>
</nav>
</header>
CSS:
.selectedFixTab
{
border-top:1px solid #eb7c00;
border-left:1px solid #eb7c00;
border-right:1px solid #eb7c00;
}
.selectedLearnTab
{
border-top:1px solid #2d70a3;
border-left:1px solid #2d70a3;
border-right:1px solid #2d70a3;
}
.selectedTab
{
border-bottom:1px solid #fff;
}
答案 0 :(得分:2)
只要鼠标悬停在LI标记上,它就会成功将"selectedFixTab"
类添加到顶级LI标记。你可以在这个jsFiddle中看到它的实际效果:http://jsfiddle.net/jfriend00/mj2u6/。
我不确定它是否正在按照您的意图行事,但它正在执行代码所要做的事情。如果您想解释您想要完成的任务,我们可以帮助您修复代码以执行您想要的操作。
答案 1 :(得分:0)
$("#site nav li a").mouseover(function ()
{
$(this).children("a").addClass("selectedTab"); // works fine
$(this).addClass("selectedFixTab"); // does not work
$(this).children("ul").css("display", "block");
});
我认为这就是你想要的!