繁体   English   中英

AngularJS-监听所有表的onclick事件<td>

[英]AngularJS - Listen for onclick events for all table <td>

有没有办法使用angular.element(...).on('click', onTdClick); (例如)以对每个被点击的网站执行onTdClick(向其提供元素)的方式?

假设我有2个表,都具有单元格和列。
我希望能够单击CELLS并将所单击的元素发送给onTdClick($event)

$scope.onTdClick = function(ev){
    window.getSelection().selectAllChildren(ev.target);
};

本质上与ng-click="onTdClick($event)"而不必对数百个<td>的ng-click进行点击

我使用.insertRow和.insertCell动态添加表行和表单元格
https://www.w3schools.com/jsref/met_table_insertrow.asp
因此,静态地执行angular.element().find('td').on()在这里效果不佳。

我的最终结果是什么?

我试图做到这一点,所以我可以单击<td>来本质上通过单击它们突出显示单元格。 高亮代码已经过测试,可以正常工作: window.getSelection().selectAllChildren(ev.target);
(其中ev是td元素)

您不应将insertRow与AngularJS一起使用。 相反,应将ng-repeat与每行都有一个对象的数组一起使用,并在要插入行时仅推送对象。

$scope.insertRow = function(){
    $scope.tdList.push({});//push whatever you want
}

如果要让单元格的数量可变,则可以在此对象中存储一些参数,以告诉视图该行有多少个单元格,然后在其中放置嵌套的ng-repeat来创建单元格

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM