как добавить стрелку в выпадающем меню - PullRequest
1 голос
/ 21 августа 2010

У меня есть рабочее простое 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; }

Ответы [ 3 ]

2 голосов
/ 21 августа 2010

В конце концов я нашел решение, и оно называется: 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();
});
0 голосов
/ 21 августа 2010
.menu li:hover ul li { background:transparent url( IMG_PATH ) left center no-repeat; padding-left:12px; }

Обратите внимание на отсутствие поддержки псевдо-селектора li в IE6.

0 голосов
/ 21 августа 2010

Вы можете сделать что-то простое, например, чтобы добавить + (или любой другой символ ASCII) непосредственно перед дочерним элементом <ul>, который находится внутри <li>, используя .before(), например так:

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

Вы можете попробовать здесь

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...