我有嵌套li,用于水平子窗口菜单。我正在尝试使用jquery的position()函数来获取li li的li的位置,但它总是返回零。同样的功能适用于父李。
Html代码
<html>
<head>
<title>test</title>
<script type='text/javascript' src='js/jquery-1.4.2.js'></script>
<link rel="stylesheet" href="css/menu_style.css" type="text/css" />
<script>
$(window).load(function() {
jQuery(document).ready(function() {
jQuery('.addchar').live('click', function(event) {
var position = $(this).position();
alert(position.left);
});
});
});
</script>
</head>
<body>
<div id="content">
<div class="menu" id="menu">
<ul>
<li><a href="#" class="addchar">A</a>
<ul>
<li><a href="#" class="addchar">Aword</a></li>
</ul>
</li>
<li><a href="#" class="addchar">B</a>
<ul>
<li><a href="#" class="addchar">Bword </a></li>
</ul>
</li>
</ul>
</div>
</div>
</body>
</html>
CSS代码
.menu{
border:none;
border:0px;
margin:0px;
padding:0px;
position:relative;/*should be relative*/
font-size:16px;
font-weight:bold;
}
.menu ul{
background:#333333;
height:40px;
list-style:none;
margin:0;
padding:0;
width:900px;
}
.menu li{
float:left;
padding:0px;
width:28px;
font-size:16px;
}
.menu li a{
background:#333333 url("../img/seperator.gif") bottom right no-repeat;
color:#cccccc;
display:block;
font-weight:normal;
font-size:14px;
line-height:35px;
margin:0px;
padding:0px 12px;
text-align:center;
text-decoration:none;
}
.menu li a:hover, .menu ul li:hover a{
background: #2580a2 url("../img/hover.gif") bottom center no-repeat;
color:#FFFFFF;
text-decoration:none;
}
.menu li ul{
background:#333333;
display:none;
height:auto;
padding:0px;
margin:0px;
border:0px;
position:absolute;
width:900px;
float:right;
z-index:200;
}
.menu li:hover ul{
display:block;
}
.menu li li {
background:url('../img/sub_sep.gif') bottom left no-repeat;
display:block;
margin:0px;
padding:0px;
width:36px;
}
.menu li:hover li a{
background:none;
}
.menu li ul a{
display:block;
height:35px;
font-size:14px;
font-style:normal;
margin:0px;
padding:0px 10px 0px 15px;
text-align:left;
}
.menu li ul a:hover, .menu li ul li:hover a{
background:#2580a2 url('../img/hover_sub.gif') center left no-repeat;
border:0px;
color:#ffffff;
text-decoration:none;
}
答案 0 :(得分:1)
你的意思是像素的位置? .position()
为您提供相对于偏移父级的位置。由于每个菜单链接都是父级的唯一子级,因此返回值将始终为零(如果您不进行某种奇特的定位)。
您可能需要offset()
,它会为您提供相对于文档的位置。
如果要在所有菜单项的集合中获取菜单项的索引,则需要使用index()
:
$('#menu ul ul .addchar').index(this);