如this answer中所述,我们需要将$ event对象传递给ng-click函数,并使用
$scope.setMaster = function(obj, $event){
console.log($event.target);
}
虽然
event.target
不是跨浏览器属性。为了克服这个问题,quirksmode建议以下内容function doSomething(e) {
var targ;
if (!e) var e = window.event;
if (e.target) targ = e.target;
else if (e.srcElement) targ = e.srcElement;
if (targ.nodeType == 3) // defeat Safari bug
targ = targ.parentNode;
}
还有其他/更好的方法来获取目标元素吗?就像当我们使用DOM / jQuery方法进行绑定时一样,我们可以使用
this
关键字来引用被单击的元素。请提出建议。
最佳答案
作为一个库,angularjs会进行此归一化,因此无需我们自己编写浏览器特定的代码。它在库中处理。
传递给点击处理程序的事件对象是规范化的,并且无论浏览器如何,都将具有上述属性(假设库支持该浏览器)