2013-01-17 185 views
35

我做了一个函数,应该在div中点击的位置添加一个项目。现在这个函数的问题是,每次我点击它时,都会将文档的位置,而不是div中的位置。所以我真正想要的是,我的div的左上角应该给x = 0 & y = 0,但我不知道这是否可能?我想有另一种方式来做到这一点..angularJS - 从div中的鼠标点击获取x&y位置

$scope.addOnClick = function(event) { 
     $scope.items.push({ 
      "label": "Click", 
      "value": 100, 
      "x": event.x-50, 
      "y": event.y-50, 
     }) 
} 

回答

58

您需要更改event.xevent.offsetXevent.yevent.offsetY

您没有添加模板的定义,但我会添加它只是在案例:

<div ng-click="addOnClick($event)"></div> 
+0

这正是我一直在寻找!我知道这将是一件容易的事情:D&是的,我已经添加了模板定义,但我确定一切都没问题..非常感谢! –

+0

很高兴我能帮到:) –

+18

小心Firefox没有offsetX。 [使用layerX for Firefox。](http://stackoverflow.com/questions/8878471/return-coordinates-of-mouse-click-on-html5-canvas-using-javascript-mouse-events) –

-1

对于那些角谁使用拖库,并希望这是拖累元素的位置:

<div ng-click="OnDrag($event)"></div> 

,并在控制器

$scope.onDrag($event){ 
     console.log("X ->",$event.originalEvent.pageX,"Y ->",$event.originalEvent.pageY) 

} 
相关问题