我写了一个左键弹出添加、修改、删除的快捷菜单代码,能够正常弹出。问题是:当页面内容太多时有滚动条,拖动滚动条后虽然能弹出菜单,但弹出的位置不是我鼠标点击的位置,我需要拖动滚动条才能找到这个菜单。请高手指教,代码如下:
<script language="JavaScript">  function popUp() { 
newX = window.event.x + document.body.scrollLeft 
newY = window.event.y + document.body.scrollTop 
menu = document.all.itemopen 
  if ( menu.style.display == ""){ 
    menu.style.display = "none" } 
  else { 
     menu.style.display = ""} 
 
   menu.style.pixelLeft = newX - 50 
   menu.style.pixelTop = newY -10 } 
</script><table id="itemopen" class='box'  style='display:none'>    
<tr><td height="28" width="80"><a href="#" onclick="pop_win('addsame_comm.aspx','400px','260px','txtCard','btnfresh')" class="cc" >添加</a></td></tr>
<tr><td><a href="#" onclick="pop_win('Mod_comm.aspx','400px','260px','txtCard','btnfresh')" class="cc" >修 改</a></td></tr>
<tr><td><a href="#" onclick="pop_win('Del_comm.aspx','200px','180px','txtCard','btnfresh',)" class="cc" >删 除</a></td></tr>
</table>

解决方案 »

  1.   

    你只是影藏了table你把table房哪他从哪出来你获取鼠标位置 点击是加到table里面
      

  2.   

    // 说明:获取鼠标位置 
    // 整理:http://www.codebit.cn 
    // 来源:http://www.webreference.com   
    function mousePosition(ev){     
      if(ev.pageX || ev.pageY){         
        return {x:ev.pageX, y:ev.pageY};     
      }     
      return {         
        x:ev.clientX + document.body.scrollLeft - document.body.clientLeft,y:ev.clientY   + document.body.scrollTop  - document.body.clientTop     }; 
      } 
      

  3.   

    <script language="javascript" type="text/javascript">
    function m(){
    document.getElementById("area").innerHTML=event.clientX +" , "+event.clientY;

    </script>
    <p id="area" style="padding:90px;border:1px solid #ccc;font-size:36px;width:800px;height:600px;" onmousemove="m();"> </p>
      

  4.   

    你只是影藏了table你把table房哪他从哪出来