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会进行此归一化,因此无需我们自己编写浏览器特定的代码。它在库中处理。

传递给点击处理程序的事件对象是规范化的,并且无论浏览器如何,都将具有上述属性(假设库支持该浏览器)

07-27 17:13