【问题标题】:My JavaScript functionr runs twice when I click on it once?当我单击一次时,我的 JavaScript 函数会运行两次?
【发布时间】:2021-05-03 08:49:51
【问题描述】:

我在 div 标签中为我的 Web 应用程序使用 Angular 我使用 ng-click 来运行一个用于更改复选框值的函数,但是当我单击 div 时它会运行两次。 这是我的 HTML:

enter code here
<div class="switch" ng-click="f_changeSwitch(a_Order.isInSaloon)">
                                <label>
                                   
                                    <span>{{lang==1  ? 'سالن' : 'Saloon'}}</span>
                                    <input  ng-model="a_Order.isInSaloon" type="checkbox"><span class="lever lever_c"></span>
                                    {{lang==1  ? 'بیرون بر' : 'Take Away'}}

                                </label>
                            </div>

这是我的 JavaScript

 $scope.f_changeSwitch = function (saloon) {
        console.log("counter", counter);
        console.log("saloon", saloon);
        console.log("$scope.a_Order.isInSaloon", $scope.a_Order.isInSaloon);
        if ($scope.a_Order.isInSaloon == true) {
            $scope.a_Order.isInSaloon = false;

        } else {
            $scope.a_Order.isInSaloon = true;
        }
        if ($scope.a_Order.isInSaloon == false) {
                $scope.packAge_Cost = {};
                $scope.packAge_Cost.a_tProductId_packageCost = $scope.a_tProductId_packageCost;
                $scope.packAge_Cost.t = $scope.a_prName;
                $scope.packAge_Cost.a_prName_EN = $scope.a_prName_EN;
                $scope.packAge_Cost.total = $scope.packAgeCostInNumber;
                $scope.ordered_item.push($scope.packAge_Cost)
                $scope.a_invTotal = $scope.a_invTotal + $scope.packAgeCost
                $scope.a_invTotalString = f_Cash2String($scope.a_invTotal);
             
            console.log("$scope.packAgeCost1234", $scope.packAgeCost);
        } else {
            $scope.a_invTotal = $scope.a_invTotal - $scope.packAgeCost; 
            $scope.a_invTotalString = f_Cash2String($scope.a_invTotal);
            console.log("is in saloon is true now")

        }
        counter++
    }

这是我的日志,当我单击一次时,您可以看到计数器为 2

【问题讨论】:

标签: javascript html angularjs web-applications


【解决方案1】:

我找到了为什么它运行两次,这是因为在 html 复选框中,每次我点击它时它都会改变值,然后在 js ng-click 运行它之后它也会改变值,所以我删除了我的函数中的 if 条件

【讨论】:

    猜你喜欢
    • 2013-11-12
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2014-07-14
    • 1970-01-01
    • 2023-01-17
    • 1970-01-01
    相关资源
    最近更新 更多