2013-01-17 184 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) 

} 
相關問題