gpt4 book ai didi

angularjs - angularjs ng-click 可以在捕获阶段处理事件吗?

转载 作者:行者123 更新时间:2023-12-03 20:27:28 24 4
gpt4 key购买 nike

在捕获阶段而不是冒泡阶段是否可以有 angularjs ng-click 过程事件?我想聚合来自每个父元素的数据,从父元素开始,到被点击的元素结束。

最佳答案

让我们看看ng-click的源代码在 ngEventDirs.js#L50

如您所见 ng-click以及所有其他使用 .on() 的事件指令.

所以,答案是不,这是不可能的 .

如果你真的需要它,你可以为此编写一个自定义指令。比如修改ng-click的代码一点点:

.directive('captureClick', function($parse) {
return {
restrict: 'A',
compile: function(element, attrs) {
var fn = $parse(attrs.captureClick);
return function(scope, element) {
element[0].addEventListener('click', function(event) {
scope.$apply(function() {
fn(scope, {
$event: event
});
});
}, true);
};
}
}
});

并像这样使用它:
<div title="A" ng-click="onBubbled($event)" capture-click="onCaptured($event)">
<div title="B" ng-click="onBubbled($event)" capture-click="onCaptured($event)">
<div title="C" ng-click="onBubbled($event)" capture-click="onCaptured($event)">
Yo!
</div>
</div>
</div>

示例Plunker: http://plnkr.co/edit/SVPv0fCNRQX4JXHeL47X?p=preview

关于angularjs - angularjs ng-click 可以在捕获阶段处理事件吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/25296808/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com