Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/417.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
如何在drop事件Javascript/Jquery中获取鼠标坐标_Javascript_Jquery_Mouseevent - Fatal编程技术网

如何在drop事件Javascript/Jquery中获取鼠标坐标

如何在drop事件Javascript/Jquery中获取鼠标坐标,javascript,jquery,mouseevent,Javascript,Jquery,Mouseevent,我只是没有定义: myele.bind('drop', function (e) { console.log("Dropped"); if (e.pageX || e.pageY) { //store } else if (e.clientX || e.clientY) { //store }

我只是没有定义:

 myele.bind('drop', function (e) {
            console.log("Dropped");
            if (e.pageX || e.pageY) {
               //store
            }
            else if (e.clientX || e.clientY) {
               //store
            }
            console.log("XPOS: " + e.clientX + " YPOS: " + e.pageY);
            return false;
        });
输出:

下降 XPOS:未定义的YPO:未定义

编辑


jQuery将原始drop事件包装到名为
originalEvent
的属性中,因此您必须访问该属性才能获取页面/客户端属性

myele.bind('drop', function (e) {
   console.log("Dropped");
   if (e.originalEvent.pageX || e.originalEvent.pageY) {
      //store
   }
   else if (e.originalEvent.clientX || e.originalEvent.clientY) {
      //store
   }
   console.log("XPOS: " + e.originalEvent.clientX + " YPOS: " + e.originalEvent.pageY);
   return false;
});
console.log(e);
   jQuery.Event {originalEvent: MouseEvent, type: "drop", isDefaultPrevented: function, timeStamp: 1396687578486, jQuery110104013205280061811: true…}
   altKey: false
   bubbles: true
   cancelable: true
   ctrlKey: false
   currentTarget: div#e
   data: null
   delegateTarget: div#e
   eventPhase: 2
   handleObj: Object
   isDefaultPrevented: function returnFalse() {
   jQuery110104013205280061811: true
   metaKey: false
   originalEvent: MouseEvent <---
      altKey: false
      bubbles: true
      button: 0
      cancelBubble: false
      cancelable: true
      charCode: 0
      clientX: 24   <---
      clientY: 64   <---
      ...
   relatedTarget: null
   ...
将绿色框拖动到红色框

当你在一个你认为有你想要的东西的对象上得到一个未定义的值时,把这个对象记录到控制台并查看它。在这种情况下,只需记录事件对象并查看属性

myele.bind('drop', function (e) {
   console.log("Dropped");
   if (e.originalEvent.pageX || e.originalEvent.pageY) {
      //store
   }
   else if (e.originalEvent.clientX || e.originalEvent.clientY) {
      //store
   }
   console.log("XPOS: " + e.originalEvent.clientX + " YPOS: " + e.originalEvent.pageY);
   return false;
});
console.log(e);
   jQuery.Event {originalEvent: MouseEvent, type: "drop", isDefaultPrevented: function, timeStamp: 1396687578486, jQuery110104013205280061811: true…}
   altKey: false
   bubbles: true
   cancelable: true
   ctrlKey: false
   currentTarget: div#e
   data: null
   delegateTarget: div#e
   eventPhase: 2
   handleObj: Object
   isDefaultPrevented: function returnFalse() {
   jQuery110104013205280061811: true
   metaKey: false
   originalEvent: MouseEvent <---
      altKey: false
      bubbles: true
      button: 0
      cancelBubble: false
      cancelable: true
      charCode: 0
      clientX: 24   <---
      clientY: 64   <---
      ...
   relatedTarget: null
   ...
console.log(e);
事件{originalEvent:mouseeEvent,类型:“drop”,isDefaultPrevented:function,时间戳:1396687578486,jQuery10104013205280061811:true…}
altKey:错误
泡泡:真的
可取消:正确
克特尔基:错
当前目标:e区
数据:空
授权对象:e组
活动阶段:2
handleObj:对象
isDefaultPrevented:函数returnFalse(){
jQuery110104013205280061811:正确
元键:false

OriginaleEvent:MouseeEvent提供一个JSFIDLE,用于复制issue@A.Wolff添加了JSFIDLE链接