2015-07-10 33 views
-1

當點擊父div時,它工作正常(即只有fun1()正在調用)。 當我點擊inner div(test4)時,函數fun1()和fun2()都在調用,但我只想在單擊內部div時調用fun2()。AngularJS - ng-click沒有停止傳播

<div ng-click="fun1()"> 
    <div>test1</div> 
    <div>test2</div> 
    <div>test3</div> 
    <div ng-click="fun2()">test4</div> 
</div> 

回答

1

ngClick指令調用stopPropagation()(以及所有其他事件指令)創建在相同範圍內可用的變量$event。這個變量是JS事件對象的引用,並可以用來打電話stopPropagation()

試試這個 <div ng-click="fun2(); $event.stopPropagation()">test4</div>

繼承人的plunkr

+0

謝謝,它工作正常。 – Sagar

3

工作plunker:

http://plnkr.co/edit/tpl:8rFfZljYNl3z1A4LKSL2?p=preview

首先,你需要明確地傳遞$事件,然後在其上

<div ng-click="fun2($event)">test4</div> 

    $scope.fun2 = function(event){ 
    console.log("Fun2") 
    event.stopPropagation(); 
    } 
+0

不同的方法對皮膚一隻貓。 +1 :) – nalinc