[英]how to get DOM element with ng-click
我有一些元素,如:
<button ng-click="weirdFunction()">Pretty Button</button>
和控制器中的功能:
$scope.weirdFunction = function(element) {
console.log(element);
}
在控制台日志中,我想接收這個 DOM 元素。 我試圖通過幾種方式做到這一點:
<button ng-click="weirdFunction()" ng-model="button">Pretty Button</button>
$scope.weirdFunction = function() { console.log($scope.button); }
<button ng-click="weirdFunction(button)" ng-model="button">Pretty Button</button>
$scope.weirdFunction = function(elem) { console.log(elem); }
$scope.weirdFunction = function(elem) { console.log(elem); }
<button ng-click="weirdFunction($element)">Pretty Button</button>
$scope.weirdFunction = function(elem) { console.log(elem); }
$scope.weirdFunction = function(elem) { console.log(elem); }
但所有嘗試均失敗。 我錯在哪里? 如何獲取點擊的元素?
請嘗試以下代碼段。
var app = angular.module('myApp', []); app.controller('myCtrl', function($scope) { $scope.weirdFunction = function(element) { console.log(element); } });
<script src="https://ajax.googleapis.com/ajax/libs/angularjs/1.2.23/angular.min.js"></script> <div ng-app="myApp" ng-controller="myCtrl"> <button ng-click="weirdFunction($event.currentTarget)">Pretty Button</button> </div>
將 $event 對象傳遞給奇怪的函數。 $event.target 給出觸發點擊的元素。
<button ng-click="weirdFunction($event)">Pretty Button</button>
我現在有這個問題,並通過創建這個函數結束
getElement($event){
return $event.target || $event.srcElement || $event.toElement || $event.path[0];
};
在 CanIUse 它適用於任何地方。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.