gpt4 book ai didi

javascript - js如何避免不必要的点击

转载 作者:行者123 更新时间:2023-11-30 11:55:13 26 4
gpt4 key购买 nike

我正在使用 angular.js 并且我有一个表格,其中每一行都可以点击,使用 ng-click="launchMethodRow",但是在一个确定的行中的列我有一个按钮,当我单击该按钮时,不仅会触发此按钮的功能(ng-click="launchMethodButton"),还会启动该行的方法.

我该如何避免这种行为?我希望当我点击按钮时,只有按钮响应的方法运行,而不是行的方法。

最佳答案

您可以捕获与点击关联的事件并阻止其传播。

假设您有一行和一个按钮,如下所示:

<div class="row" ng-click="launchMethodRow()">
<button ng-click="launchMethodButton($event)"></button>
</div>

对于 ng-click 按钮,将点击事件 ($event) 传递给回调函数。并在 launchMethodButton 函数中,停止事件传播。

$scope.launchMethodButton = function(event){
event.stopPropagation();
// execute button click logic
}

或者,您可以将传播停止逻辑包装到一个指令中,并将其应用于按钮,这样您就不必在 Controller 中执行该逻辑。

angular.module('someModule', []).directive('stopClickPropagation', function () {
return {
restrict: "A",
link: function (scope, element) {
element.bind('click', function (e) {
e.stopPropagation();
});
}
}
});

<div class="row" ng-click="launchMethodRow()">
<button ng-click="launchMethodButton()" stop-click-propagation></button>
</div>

关于javascript - js如何避免不必要的点击,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/38216212/

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