Jquery 如何选择';这个';?
我正在尝试做一个基本的下拉菜单。如何更改鼠标悬停时链接父项的字体颜色Jquery 如何选择';这个';?,jquery,Jquery,我正在尝试做一个基本的下拉菜单。如何更改鼠标悬停时链接父项的字体颜色 <ul id="nav"> <li><a href="#">Parent 01</a></li> <li><a href="#">Parent 02 > </a> <ul> <li><a href="#">Item 01</a&g
<ul id="nav">
<li><a href="#">Parent 01</a></li>
<li><a href="#">Parent 02 > </a>
<ul>
<li><a href="#">Item 01</a></li>
<li><a href="#">Item 02</a></li>
<li><a href="#">Item 03</a></li>
</ul>
<div class="clear"></div>
</li>
<li><a href="#">Parent 03 > </a>
<ul>
<li><a href="#">Item 04</a></li>
<li><a href="#">Item 05</a></li>
<li><a href="#">Item 06</a></li>
<li><a href="#">Item 07</a></li>
</ul>
<div class="clear"></div>
</li>
<li><a href="#">Parent 04</a></li>
</ul>
$('#nav li').hover(
function () {
$('ul', this).slideDown("slow");
},
function () {
$('ul', this).fadeOut("slow");
}
);
$(#nav li')。悬停(
函数(){
$('ul',this).slideDown(“slow”);
},
函数(){
$('ul',this.fadeOut(“慢”);
}
);
我尝试了
$('a',this).css(“颜色”,“蓝色”)
;但是它会改变每个a
的颜色。我只需要更改父菜单项的a
的颜色。将这两个添加到您的函数中:
$(this).addClass("hover-item");
及
最好使用CSS类,以便在CSS中定义样式,而不是设置内联样式,这在大多数情况下是一种糟糕的做法
但是请注意,这将直接将类添加到LI
元素,而不是A
。这将使它更加灵活,因为您可以根据自己的喜好更改LI
内容,并保持功能不变。并相应地调整CSS
在您的情况下,CSS应该如下所示:
li.hover-item > a
{
color: #f00; /* adjust colour to your liking */
}
这将只设置子链接的颜色,而不是所有子链接的颜色(这也将更改子菜单中所有链接的颜色)
仅使用CSS
您是否意识到您可以轻松地使用CSS唯一的解决方案来实现您想要实现的目标?菜单的滑动和淡入仍将像现在一样进行,但您可以在CSS文件中设置A
高亮显示:
#nav li
{
padding: 0;
...
}
#nav li a
{
padding: 3px 5px;
display: block;
...
}
#nav li a:hover
{
color: #f00; /* adjust colour to your liking */
...
}
如果您的LI
中有填充,我建议您将其删除,并将填充添加到A
中(如在我的CSS中)。同时设置显示:块
以占用LI
的整个可用空间
如果可能的话,只使用CSS解决方案总是比使用JavaScript要好。将以下两个添加到函数中:
$(this).addClass("hover-item");
及
最好使用CSS类,以便在CSS中定义样式,而不是设置内联样式,这在大多数情况下是一种糟糕的做法
但是请注意,这将直接将类添加到LI
元素,而不是A
。这将使它更加灵活,因为您可以根据自己的喜好更改LI
内容,并保持功能不变。并相应地调整CSS
在您的情况下,CSS应该如下所示:
li.hover-item > a
{
color: #f00; /* adjust colour to your liking */
}
这将只设置子链接的颜色,而不是所有子链接的颜色(这也将更改子菜单中所有链接的颜色)
仅使用CSS
您是否意识到您可以轻松地使用CSS唯一的解决方案来实现您想要实现的目标?菜单的滑动和淡入仍将像现在一样进行,但您可以在CSS文件中设置A
高亮显示:
#nav li
{
padding: 0;
...
}
#nav li a
{
padding: 3px 5px;
display: block;
...
}
#nav li a:hover
{
color: #f00; /* adjust colour to your liking */
...
}
如果您的LI
中有填充,我建议您将其删除,并将填充添加到A
中(如在我的CSS中)。同时设置显示:块
以占用LI
的整个可用空间
如果可能的话,只使用CSS解决方案总是比使用JavaScript好。您可以使用
$(this).parent()
及
对于孩子们,你可以选择特定的元素,如“li”或“li:first”等
在您的情况下,我将使用样式为的类,然后:
$(this).parent().addClass("HoverClass");
以及:
您可以使用
$(this).parent()
及
对于孩子们,你可以选择特定的元素,如“li”或“li:first”等
在您的情况下,我将使用样式为的类,然后:
$(this).parent().addClass("HoverClass");
以及:
我在想什么!!是的,我可以只使用CSS,非常感谢matewat我在想!!是的,我可以只用CSS,非常感谢,伙计