点击事件在当前点击位置弹出一个弹窗

<script type="text/javascript">
            //获取鼠标位置GetPostion 
            function GetPostion(e) { 
            var x = getX(e); 
            var y = getY(e); 
            return [x,y]
            } 
            function getX(e) { 
            e = e || window.event; 
            return e.pageX || e.clientX + document.body.scrollLeft - document.body.clientLeft 
            } 
            function getY(e) { 
            e = e|| window.event; 
            return e.pageY || e.clientY + document.body.scrollTop - document.body.clientTop 
            } 
            
            $("table tr").click(function(){
                $(".cars-info-control").remove();
                var mousePos=GetPostion();
                var selfY=mousePos[1]-40;
                var selfX=mousePos[0]-78;
                $('<div class="btn-group cars-info-control"><a class="btn">调度</a> <a class="btn">当前位置</a> <a class="btn">视频</a> </div>')
                .css("position","absolute").css("top",selfY).css("left",selfX).appendTo("body")
            })
        </script>

 上述方法,在FF下是无用 报错(e is undifind),原来FF不支持直接的event,解决方法是不直接利用event属性,用下面的代码即可

 function getEvent() //同时兼容ie和ff的写法
        {  
            if(document.all)   return window.event;    
            func=getEvent.caller;        
            while(func!=null){  
                var arg0=func.arguments[0];
                if(arg0)
                {
                  if((arg0.constructor==Event || arg0.constructor ==MouseEvent) || (typeof(arg0)=="object" && arg0.preventDefault && arg0.stopPropagation))
                  {  
                  return arg0;
                  }
                }
                func=func.caller;
            }
            return null;
        }
 //获取鼠标位置GetPostion 
         function GetPostion() {
              var e=getEvent();
              var x = getX(e);
              var y = getY(e);
              return [x, y]
           }

         function getX(e) {
               
             return e.pageX || e.clientX + document.body.scrollLeft - document.body.clientLeft
           }

         function getY(e) {
             
            return e.pageY || e.clientY + document.body.scrollTop - document.body.clientTop
          } 

 

转载于:https://www.cnblogs.com/wenb/p/7263289.html

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值