得到父div id onclick图标

时间:2015-12-10 07:07:53

标签: javascript jquery html css angularjs

点击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

请帮忙。

3 个答案:

答案 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>