点击fa-eye图标,我想只关注/突出显示div。
HTML:
<i style="float: right; margin: 8px; cursor: pointer;" class="fa fa-eye" ng-click="focus()"></i>
JS:
$scope.focus = function($element) {
$('#focus-overlay').toggleClass("focus-overlay");
$('#last').toggleClass("widget-focus-enabled");
};
代替id="last"
我必须在点击图标时找到ID,然后需要添加课程..
我尝试过:$($event.target).parent()
但无法获得结果。
演示:http://plnkr.co/edit/HvTRdjNVdmHjnyG41O4F?p=preview
请帮忙。
答案 0 :(得分:2)
您可以使用this
获取当前对象
ng-click="focus(this)"
然后在函数中,
$scope.focus = function($element) {
var parent= $($element).closest("div");
$('#focus-overlay').toggleClass("focus-overlay");
$('#last').toggleClass("widget-focus-enabled");
};
.closest("div")
将获得父div。 closest()
优于parent()
的优点是它可以遍历多个级别。
答案 1 :(得分:1)
只需在$event
方法中传递angularjs
的{{1}}属性。
ng-click
在您的方法中执行此操作。
ng-click="focus($event)"
答案 2 :(得分:1)
如果你读过这个帖子:
Automatically pass $event with ng-click?
你会看到zeroflagL的评论,我刚刚赞成, 您正在尝试修改控制器中的可视组件, 这不是这个处理程序的意图
角度文档进一步支持它: &#39;控制器应该只包含业务逻辑。将任何表示逻辑放入控制器会显着影响其可测试性。 &#39; https://docs.angularjs.org/guide/controller
没有什么能阻止你在这里使用普通的旧javascript
我添加了一个应用样式的脚本块,而不是直接 父母,但几个
这是你修改过的plunker,
http://plnkr.co/edit/0x4ZqKoQcQLHXMMWtLJD
但实质上这里是补充:
的index.html:
<script>
var _handleclick = function(ele) {
ele.parentElement.parentElement.parentElement.style.backgroundColor = 'red';
}
</script>
template.html:
<i style="float: right; margin: 8px; cursor: pointer;" class="fa fa-eye" onclick="_handleclick(this)" ng-click="focus()"></i>