如何在下拉菜单中添加箭头

发布于 2024-09-15 13:40:51 字数 1221 浏览 6 评论 0原文

我有一个简单的 jquery 下拉菜单。但问题是如果列表有子菜单,我怎样才能像其他常用菜单一样互相放置箭头或只是“+”字符。

function Mx_menu(){
    $(".menu ul").css({display: "none"}); // Opera Fix
    $(".menu li").hover(function(){
                $(this).find('ul:first').css({visibility: "visible",display: "none"}).show(400);
            },function(){
                $(this).find('ul:first').css({visibility: "hidden"});
    });

}    

    $(document).ready(function(){                   
        Mx_menu();
    });

CSS 文件在这里:

.menu, .menu ul { margin:0; padding:0; list-style-type:none; list-style-position:outside; position:relative; }
.menu a { color:#a6a6a6; display:block; padding:6px 10px; }             
.menu li { float:left; position:relative; width:200px; }
.menu ul { position:absolute; display:none; width:200px; top:0; left:200px; }
.menu li ul a { width:200px; height:auto; float:left; }
.menu ul ul { top:auto; }
.menu li ul ul { left:200px; margin:0; }
.menu li:hover ul ul, .menu li:hover ul ul ul, .menu li:hover ul ul ul ul { display:none; }
.menu li:hover ul, .menu li li:hover ul, .menu li li li:hover ul, .menu li li li li:hover ul { display:block; }

I have a working simple jquery drop-down menu. But problem is how can I put an arrow or just '+' character each other like other usual menus if list has sub-menu, of course.

function Mx_menu(){
    $(".menu ul").css({display: "none"}); // Opera Fix
    $(".menu li").hover(function(){
                $(this).find('ul:first').css({visibility: "visible",display: "none"}).show(400);
            },function(){
                $(this).find('ul:first').css({visibility: "hidden"});
    });

}    

    $(document).ready(function(){                   
        Mx_menu();
    });

And CSS file here:

.menu, .menu ul { margin:0; padding:0; list-style-type:none; list-style-position:outside; position:relative; }
.menu a { color:#a6a6a6; display:block; padding:6px 10px; }             
.menu li { float:left; position:relative; width:200px; }
.menu ul { position:absolute; display:none; width:200px; top:0; left:200px; }
.menu li ul a { width:200px; height:auto; float:left; }
.menu ul ul { top:auto; }
.menu li ul ul { left:200px; margin:0; }
.menu li:hover ul ul, .menu li:hover ul ul ul, .menu li:hover ul ul ul ul { display:none; }
.menu li:hover ul, .menu li li:hover ul, .menu li li li:hover ul, .menu li li li li:hover ul { display:block; }

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

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

发布评论

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

评论(3

秋叶绚丽 2024-09-22 13:40:51

最终我找到了一个解决方案,所以它被称为: prev():

$(".menu li ul").prev().css("background", "url(IMG_URL) transparent");

最终的jquery代码在这里:

function Mx_menu(){

    $(".menu li ul").prev().css("background", "url('IMG_URL')");

    $(".menu ul").css({display: "none"}); // Opera Fix
    $(".menu li").hover(function(){
                $(this).find('ul:first').css({visibility: "visible",display: "none"}).show(400);

            },function(){
                $(this).find('ul:first').css({visibility: "hidden"});
    });
}   
$(document).ready(function(){                   
    Mx_menu();
});

Eventually I found a solution, so it's called: prev():

$(".menu li ul").prev().css("background", "url(IMG_URL) transparent");

Final jquery code here:

function Mx_menu(){

    $(".menu li ul").prev().css("background", "url('IMG_URL')");

    $(".menu ul").css({display: "none"}); // Opera Fix
    $(".menu li").hover(function(){
                $(this).find('ul:first').css({visibility: "visible",display: "none"}).show(400);

            },function(){
                $(this).find('ul:first').css({visibility: "hidden"});
    });
}   
$(document).ready(function(){                   
    Mx_menu();
});
留一抹残留的笑 2024-09-22 13:40:51

您可以执行类似这样的简单操作,在

  • < 内的子
      之前添加 + (或任何 ASCII 字符)。 /code> 使用 .before(),如下所示:
  • $(".menu li ul").before(' +');
    

    您可以在这里尝试一下

    You could do something simple like this to prepend a + (or whatever ASCII character) just before the child <ul> that's inside the <li> using .before(), like this:

    $(".menu li ul").before(' +');
    

    You can give it a try here

    ζ澈沫 2024-09-22 13:40:51
    .menu li:hover ul li { background:transparent url( IMG_PATH ) left center no-repeat; padding-left:12px; }
    

    请注意,IE6 中缺乏对 li 伪选择器的支持。

    .menu li:hover ul li { background:transparent url( IMG_PATH ) left center no-repeat; padding-left:12px; }
    

    Note the lack of support for the pseudo-selector of li, in IE6.

    ~没有更多了~
    我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
    原文