gpt4 book ai didi

javascript - AngularJS:如何停止 ng-click 的事件传播?

转载 作者:数据小太阳 更新时间:2023-10-29 04:10:26 25 4
gpt4 key购买 nike

我有这样的指令:

app.directive('custom', function(){
return {
restrict:'A',
link: function(scope, element){
element.bind('click', function(){
alert('want to prevent this');
});

}
}
});

是的,对于这种情况,有必要进行 jQuery 方式的绑定(bind)。

现在我想在满足某些条件时停止此事件(点击)传播。

尝试过:

  $event.stopPropagation();
$event.preventDefault();

但这并没有帮助。

例如这里的 fiddle - http://jsfiddle.net/STEVER/5bfkbh7u/

最佳答案

在您的情况下,您无法停止传播,因为点击事件发生在同一元素上,只有两个不同的处理程序。

但是,您可以利用 Controller ngClick 和指令中的相同 事件对象这一事实。所以你可以做的是为这个事件对象设置一些属性并在指令中检查它:

$scope.dosomething = function($event){
$event.stopPropagation();
$event.preventDefault();
alert('here');

if (someCondtion) {
$event.stopNextHandler = true;
}
}

在指令中:

link: function(scope, element){
element.bind('click', function(e) {
if (e.stopNextHandler !== true) {
alert('want to prevent this');
}
});
}

演示: http://jsfiddle.net/5bfkbh7u/6/

关于javascript - AngularJS:如何停止 ng-click 的事件传播?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/28586231/

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