如何获得tr而不是td事件?
app.controller('myController', ['$scope'], function($scope) {
$scope.OnRowFocused = function (event) {
event.target.attributes.class.nodeValue = 'active';
}
});
<table>
<tr ng-click="OnRowFocused($event)">
<td>
Column 1
<td/>
<td>
Column 2
<td/>
</tr>
</table>
当我点击行中的任何一列时,我总是得到td事件而不是tr。我想获得tr事件,以便在用户与之交互时突出显示焦点行。
答案 0 :(得分:1)
请使用event.currentTarget
,它会为您提供发生事件的当前元素。
$scope.OnRowFocused = function (event) {
console.log('This is the correct element',event.currentTarget);
console.log("class list", event.currentTarget[0].classList)
};
我不建议采用这种方法,而你似乎就是这样 从控制器操纵DOM。它应该去某个地方 指令。
答案 1 :(得分:0)
event.target
是收到点击的元素。
尝试在事件处理程序中使用this
- this
是注册事件的元素。