javascript - angularjs controller




两个带有angularjs的嵌套点击事件 (2)

我有这样的HTML结构:

<div ng-click="test()">
    <div id="myId" ng-click="test2()"></div>
    <div></div>
    ...
</div>

目前,当我点击id为myIddiv ,两个函数都会被触发,但我希望只触发test2函数。 我怎样才能做到这一点?


与汤姆的答案相同,但差别不大。

        <div ng-click="test()">
            <div id="myId" ng-click="test2($event)">child</div>
        </div>

        $scope.test2 =function($event){
            $event.stopPropagation();
            console.log("from test2")
        }
        $scope.test =function(){
            console.log("from test")
        }

您需要做的就是停止事件传播/冒泡。

此代码将帮助您:

<div ng-click="test()">ZZZZZ
    <div id="myId" ng-click="test2();$event.stopPropagation()">XXXXX</div>
    <div>YYYYYY</div>
    ...
</div>

如果你的testtest2函数看起来如下所示,那么当你点击myId DIV时,你的控制台中只会得到test2 。 如果没有$event.stopPropagation()您将获得test2然后在控制台输出窗口中进行test

$scope.test = function() {
    console.info('test');
}
$scope.test2 = function() {
    console.info('test2');
}




angularjs