Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/337.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
Javascript angularJS-获取x&;div中鼠标单击的y位置_Javascript_Position_Angularjs - Fatal编程技术网

Javascript angularJS-获取x&;div中鼠标单击的y位置

Javascript angularJS-获取x&;div中鼠标单击的y位置,javascript,position,angularjs,Javascript,Position,Angularjs,我做了一个函数,应该在我在div中单击的位置上添加一个项目。现在这个函数的问题是,每次我单击时,它都会获取文档的x&y位置,而不是div中的x&y位置。所以我真正想要的是,div的左上角应该给出x=0&y=0,但我不知道这是否可能?我想还有另外一种方法 $scope.addOnClick = function(event) { $scope.items.push( { "label": "Click", "value": 100,

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

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

您需要将
event.x
更改为
event.offsetX
event.y
更改为
event.offsetY

您没有添加模板定义,但我将添加它以防万一:

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

对于使用拖动库并希望获得被拖动图元位置的用户:

<div ng-click="OnDrag($event)"></div>
在html文件中,使用:

<div (click)="test($event)"></div>

那正是我要找的!我知道这会很简单:D&是的,我已经添加了模板定义,但我确信那里一切都很好。。谢谢你,伙计!小心Firefox没有offsetX。Firefox现在有了
offsetX
offsetY
,但它们似乎并不正确。
<div (click)="test($event)"></div>
function test(e){
 console.log(e.clientX);
 console.log(e.clientY);
}