使用 jquery 获取前一个 p 标签来更改背景

发布于 2024-11-23 23:12:15 字数 1324 浏览 2 评论 0原文

我有以下问题。我有一个 css 下拉导航,如果导航的下拉部分有鼠标悬停,我希望“导航标题”的背景保持其悬停时获得的背景颜色。问题是,如果用户继续移动并将鼠标悬停在下拉列表上,“导航标题”的悬停状态将恢复为“正常”。这就是为什么我认为我可以使用 jquery 来改变它。

但不幸的是我不知道如何选择特定的元素。

以下是导航示例:

<ul> 
                    <li> 
                        <p class="naviHead first">Finanzen</p> 
                            <ul> 
                                <li><a href="http://www.spardaxx.de/kredit" title="SparDaxx Ratenkredit">Ratenkredit</a></li>
                                <li><a href="http://www.spardaxx.de/baufinanzierung" title="SparDaxx Baufinanzierung">Baufinanzierung</a></li>
                                <li><a href="http://www.spardaxx.de/altersvorsorge" title="SparDaxx Riester Rente">Riester Rente</a></li>
                            </ul> 
                    </li> 
                </ul> 

因此,如果用户将鼠标悬停在 p 标签上,则会打开下拉菜单 ul。现在,如果有人将鼠标悬停在以下 ul 上,我想更改 p 的背景颜色..

这是我的 jquery 到目前为止,

$().ready(function() {
            $('#TopNav ul ul').mouseover(function() {
                 $(this).parents('p.naviHead').filter(':first').css("background", "black");


            })
        });

我想解决方案很简单,但我不知道.. 因此,感谢任何帮助。谢谢! :)

i have the following problem. I have a css dropdown navigation and if there is a mouseover on the dropdown part of the navigation I want the background of the "navigation heading" to keep its background color that it gets when there is a hover on it. Problem is if the user moves on and hovers over the dropdown, the hover state of the "navigation heading" goes back to "normal". That's why I thought I could use jquery to alter it.

But unfortunately I don't know how to select the specific element.

Here is an example for the navigation:

<ul> 
                    <li> 
                        <p class="naviHead first">Finanzen</p> 
                            <ul> 
                                <li><a href="http://www.spardaxx.de/kredit" title="SparDaxx Ratenkredit">Ratenkredit</a></li>
                                <li><a href="http://www.spardaxx.de/baufinanzierung" title="SparDaxx Baufinanzierung">Baufinanzierung</a></li>
                                <li><a href="http://www.spardaxx.de/altersvorsorge" title="SparDaxx Riester Rente">Riester Rente</a></li>
                            </ul> 
                    </li> 
                </ul> 

So if the user hovers over the p tag, the dropdown ul opens. Now I want to change the background color of the p if someone hovers over the following ul..

here is my jquery so far

$().ready(function() {
            $('#TopNav ul ul').mouseover(function() {
                 $(this).parents('p.naviHead').filter(':first').css("background", "black");


            })
        });

I guess the solution i simple, but I have no idea.. So any help is appreciated. Thx! :)

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(2

给我一枪 2024-11-30 23:12:15
$(this).prev().css("backgroundColor", "black");  

或者如果你有更复杂的布局那么 -

$(this).parent().find('p.naviHead').css("backgroundColor", "black");

可能会更好

$(this).prev().css("backgroundColor", "black");  

or if you have a more complex layout then -

$(this).parent().find('p.naviHead').css("backgroundColor", "black");

may be better

汐鸠 2024-11-30 23:12:15
$(this).siblings('p.naviHead').css("background", "black");

$('#TopNav ul ul').mouseleave(function() {
  $(this).parent().find('p.naviHead').css("backgroundColor", "yourPreviosColor");
})
$(this).siblings('p.naviHead').css("background", "black");

$('#TopNav ul ul').mouseleave(function() {
  $(this).parent().find('p.naviHead').css("backgroundColor", "yourPreviosColor");
})
~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文