我想知道使用ng-click
的输入框的位置。以下是控制器代码,我在其中安慰事件pageX
和clientX
,但不是给出输入元素的位置,而是根据鼠标点击给出值。如果有任何属性可以提取此信息,请告诉我。 (顺便说一下,我不是在寻找指令方式)
控制器代码 -
myApp.controller('mainCtrl', function($scope){
$scope.clicked = function(e) {
console.clear();
console.log(e);
console.log(e.pageX);
console.log(e.clientX);
};
})
HTML代码 -
<input type="text" ng-click="clicked($event)" />
工作Plnkr - http://plnkr.co/edit/f9HoVeSUwKUe9QSOB2jC?p=preview
答案 0 :(得分:2)
简单! :)
myApp.controller('mainCtrl', function($scope){
$scope.clicked = function(e) {
var el = e.currentTarget;
var place = el.getBoundingClientRect();
console.log(place);
console.log('X coordinate - '+place.x);
console.log('Y coordinate - '+place.y);
};
})
答案 1 :(得分:1)
使用
Element.getBoundingClientRect()
而不是e.target
Event.target :对调度事件的对象的引用。
Element.getBoundingClientRect()
方法返回元素的大小及其相对于视口的位置。
var myApp = angular.module('app', []);
myApp.controller('mainCtrl', function($scope) {
$scope.clicked = function(e) {
console.log(e.target.getBoundingClientRect());
};
})
&#13;
<script src="http://gh-canon.github.io/stack-snippet-console/console.min.js"></script>
<script src="https://ajax.googleapis.com/ajax/libs/angularjs/1.2.21/angular.min.js"></script>
<div ng-app="app" ng-controller="mainCtrl">
<input type="text" ng-click="clicked($event)" />
</div>
&#13;