使用jquery下拉菜单定位

时间:2011-07-12 06:53:23

标签: jquery html css

我正在尝试创建一个下拉菜单,我需要检测子菜单的核心位置。这就是我用jquery缩进它的方法:

function changeSubcat(catid){
    var position = $('#menuparent_'+catid).position();
    position.left = position.left - 180;
    $('#menu_'+catid).css("left", position.left);
}

真正的问题是它只适用于我工作的大小窗口,显而易见,所以我需要优化它以适应其他维度。首先我认为我应该使用另一种方法而不是position(),但我找不到更好的方法。很抱歉没有提供HTML代码,但它有点毛茸茸。

2 个答案:

答案 0 :(得分:2)

我不明白为什么你要同时左右使用边距来定位元素。仅使用

function changeSubcat(catid) {
    var position = $('#menuparent_'+catid).position();
    // maybe add a little something to position.top to make the menus not overlap
    $('#menu_'+catid).position(position);
}

应该有效。有时我发现position()不起作用,您也可以尝试offset()。在极少数情况下,我也遇到了position()offset()的问题,在这种情况下,您可以使用$('#menuparent_'+catid)[0].offsetTop$('#menuparent_'+catid)[0].offsetLeft来获取和设置位置。

编辑:顺便说一下,你不必解析position.left或者right,因为它们已经是整数。

答案 1 :(得分:0)

据我所见,您只想定位掉落的元素。为什么你要使用JS呢?不会the pure CSS solution解决您的问题?