2016-03-29 24 views
0

我目前正试图让一个弹出窗口出现在鼠标悬停在给定菜单项的右侧。我已经使用jQuery UI的.position()属性来做到这一点,它在静态元素上工作得很好。但是,我将弹出窗口绑定到可滚动菜单,我希望弹出窗口继续显示在菜单项的即时右侧,即使我滚动了一下。不幸的是,当通过滚动移动主机元素时,弹出窗口的位置变得不可思议。我如何动态使用.position()来确保弹出窗口始终位于菜单项的右侧?是否有更好的方法将元素的位置动态绑定到另一个位置?以下是我的代码。jQuery UI .position()来动态调整

<div id="menu" style="overflow-y: scroll; ..."> 
    <p id="menu-item-1"></p> 
    ... 
</div> 

<div id="popup-container" style="display: none; ...">...</div> 

<script> 
    $("#menu-item-1").hover(function(){ 
     $("#popup-container").position({ 
      my: "left top", 
      at: "left+160 top", 
      of: $("#menu-item-1") 
     }); 
     $("#popup-container").toggle(); 
    }); 
</script> 

回答

0

没关系。弄清楚了。 .position()不能定位隐藏的元素。因此,如果将.toggle()对象放在解决问题的.position()对象上方。