我有一个基本上是一张大桌子的指令。在表格的一些单元格中,我有一些内容的div。每当点击div时,我想做一些事情(以我的代码中的console.log("clicked")
为例)。
问题是div也包含其他html元素,如果点击其中一个后代html元素,则没有任何反应。因此,我想在单击父div和单击任何后代元素时执行某些操作。
单击div时会发生以下情况,但单击任何后代时不会执行以下操作:
link: function(scope, element) {
element.on("click", function(e) {
if (e.target.className.match('myclass'))
{
console.log("Clicked!");
}
});
}
如何点击div和元素内的任何元素并使用“myclass”确保上述情况发生?
答案 0 :(得分:0)
您在活动中需要的是
if (e.target.className.match('myclass') || $(e.target).closest('.myclass')) {
alert("Clicked!");
}
函数closest()允许您搜索父母。
(我假设你的项目中有jQuery,因为它是标签的一部分)
话虽如此,我强烈建议你不要混淆jQuery和AngularJs,除非有必要。在大多数情况下,您可以在项目中完全不使用jQuery来实现类似的功能。
我相信你可以获得相同的功能,如果在你的模板中你只使用ng-click="someFunction()"
- 它会在点击子元素时触发