Javascript 获取激发ng click的元素

Javascript 获取激发ng click的元素,javascript,jquery,angularjs,Javascript,Jquery,Angularjs,我开始了解AngularJS,我在构建脚本以处理AngularJS的所有逻辑时遇到了麻烦,同时混合了jQuery的效果等等 因此,我正在做一个简单的CRUD“待办事项”应用程序,当我删除一个任务时,我想让任务div以某种奇特的方式淡出 这就是调用deleteTask方法的地方: <div class="delete-task glyphicon glyphicon-remove" ng-click="deleteTask(task)"></div> 在最后一段代码中,如

我开始了解AngularJS,我在构建脚本以处理AngularJS的所有逻辑时遇到了麻烦,同时混合了jQuery的效果等等

因此,我正在做一个简单的CRUD“待办事项”应用程序,当我删除一个任务时,我想让任务div以某种奇特的方式淡出

这就是调用
deleteTask
方法的地方:

<div class="delete-task glyphicon glyphicon-remove" ng-click="deleteTask(task)"></div>

在最后一段代码中,如何检索调用该方法的div?我想知道DOM元素,这样我就可以对父div应用一些效果,并使其以某种漂亮的方式消失。

ng单击
可以访问
$event
参数:

ng-click="deleteTask(task, $event)"

$scope.deleteTask = function(task, e) {
    var index = $scope.tasks.indexOf(task);
    $scope.tasks.splice(index, 1);

    console.log(e.target); //caller
};

正如另一个答案所说,你不应该这样做。。。相反,应用一个CSS类来转换元素(单向)(签出
ngAnimate
,查看转发器上漂亮的进入/退出动画)

我将首先回答这个问题,然后解释更好的方法

您可以使用
$event
对象获取DOM元素对象启动的事件:

<div class="delete-task glyphicon glyphicon-remove" ng-click="deleteTask(task, $event)"></div>
但是,您不应该这样做。像这样在控制器中混合jQuery代码和jQuery不是很好的方法。您至少有两个更好的选择:

1) 。使用模块获得您喜欢的任何奇特动画效果。在本例中,我将使用指令并定义必要的CSS规则来转换/动画元素


2) 。构建自定义指令,在该指令中可以使用任何类型的DOM操作。

是的,我提到将角度逻辑与jQuery效果、更改类等混合在一起对我来说似乎很奇怪。。。你能给我一些我可以看到这种情况是如何处理的来源吗?在我的问题中检查ngIf链接,它有一个动画使用的例子。实际上我想不出一种使用
ng的方法,如果在这种情况下,有什么想法吗?
<div class="delete-task glyphicon glyphicon-remove" ng-click="deleteTask(task, $event)"></div>
$scope.deleteTask = function(task, e) {
    // DOM element is e.target
    var index = $scope.tasks.indexOf(task);
    $scope.tasks.splice(index, 1);
};