2013-01-17 39 views
35

Tôi đã thực hiện một chức năng cần thêm một mục vào vị trí tôi đã nhấp vào bên trong một div. Bây giờ vấn đề với chức năng này là, mỗi khi tôi nhấp vào, nó sẽ mất vị trí x & y của tài liệu, chứ không phải vị trí y x & trong div. Vì vậy, những gì tôi thực sự muốn, là góc trên bên trái của div của tôi nên cung cấp cho x = 0 & y = 0, nhưng tôi không biết nếu điều này là có thể? Và tôi đoán có một cách khác để làm điều này ..angularJS - nhận vị trí x & y từ mouseclick trong div

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

Trả lời

58

Bạn cần thay đổi event.x-event.offsetXevent.y-event.offsetY

Bạn không thêm định nghĩa mẫu nhưng tôi sẽ thêm nó chỉ trong trường hợp:

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

Đó là chính xác những gì tôi đang tìm kiếm! Tôi biết nó sẽ là một cái gì đó dễ dàng như vậy: D & yeah, tôi đã thêm định nghĩa mẫu, nhưng tôi đã chắc chắn tất cả mọi thứ đã ổn ở đó .. Cảm ơn rất nhiều bạn đời! –

+0

Vui vì tôi có thể giúp :) –

+18

Hãy cẩn thận Firefox không có offsetX. [Sử dụng layerX cho Firefox.] (Http://stackoverflow.com/questions/8878471/return-coordinates-of-mouse-click-on-html5-canvas-using-javascript-mouse-events) –

-1

Đối với những người trên góc người đang sử dụng các thư viện kéo và muốn vị trí của nguyên tố này đã được kéo:

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

và trong bộ điều khiển

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

} 
Các vấn đề liên quan