Javascript 获取激发ng click的元素
我开始了解AngularJS,我在构建脚本以处理AngularJS的所有逻辑时遇到了麻烦,同时混合了jQuery的效果等等 因此,我正在做一个简单的CRUD“待办事项”应用程序,当我删除一个任务时,我想让任务div以某种奇特的方式淡出 这就是调用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> 在最后一段代码中,如
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);
};