单击时获取表

时间:2016-04-14 02:12:52

标签: javascript jquery html angularjs

如何获得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事件,以便在用户与之交互时突出显示焦点行。

2 个答案:

答案 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。它应该去某个地方   指令。

Demo Plunkr

答案 1 :(得分:0)

event.target是收到点击的元素。

尝试在事件处理程序中使用this - this是注册事件的元素。