У меня есть работающее простое выпадающее меню 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; }
В конце концов я нашел решение, поэтому оно называется: 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();
});
.menu li:hover ul li { background:transparent url( IMG_PATH ) left center no-repeat; padding-left:12px; }
Обратите внимание на отсутствие поддержки псевдоселектора li в IE6.
You could do something simple like this to prepend a +
(or whatever ASCII character) just before the child
that's inside the using
.before()
, like this:
$(".menu li ul").before(' +');