javascript - Angularjs 在 ng-click 函数中访问此元素

标签 javascript jquery angularjs this

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 方法绑定(bind)一样,我们可以使用 this 关键字来引用单击的元素。

请提出建议。

最佳答案

作为一个库,AngularJS 会进行这种规范化,因此无需我们自己执行浏览器特定的代码。它在库内处理。

传递给点击处理程序的事件对象已标准化,并且无论浏览器如何,都将具有上述属性(假定库支持所述浏览器)

关于javascript - Angularjs 在 ng-click 函数中访问此元素,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/25259684/

相关文章:

javascript - 在 Jquery Autocomplete 中遍历列表中的第一个值

javascript - 将ajax请求的结果放入div中

javascript - 如果元素没有特定类的父元素

javascript - Typescript angularjs $http 获取响应类型(避免使用 <any>)

javascript - Angular.js 和 SEO

javascript - 如何使用 Typeahead.js 0.10 一步一步/远程/预取/本地

javascript - CSS 下拉菜单在 IE8 中不起作用

jquery - 悬停时如何在图像中添加彩色叠加层?

javascript - AngularJS:ng-repeat 动态列表,无需重建整个 DOM 树?

javascript - 3 切换表格列排序