将元素相对于另一个元素定位

时间:2013-07-23 09:47:13

标签: jquery position

我想将xmenu-toggle类分配给一个元素,该元素在单击时会在其左侧显示一个菜单。我试过跟随,但菜单的位置将在连续点击中改变。怎么了?

    $('.xmenu-toggle').click(function (event) {
        event.stopPropagation();
        var pos=$(this).offset();
        $(this).siblings('.xmenu').offset({top:pos.top+10,left:pos.left+10}).toggle();
    }) 

HTML:

<div class="xmenu-toggle">Click me!</div>
<div class="xmenu">I am the menu, I have relative position</div> 

1 个答案:

答案 0 :(得分:1)

看起来它与.toggle()的展示位置有关。我把它移到了.offset()之前,它始终在同一个地方出现。

 $('.xmenu-toggle').click(function (event) {
     var offset = $(this).offset();

     $(this).parent().find('.xmenu').toggle().offset({
         top: offset.top + 10,
         left: offset.left + 10
     });

 });

jsFiddle Demo