2016-03-02 70 views
0
<ul> 
    <li ng-click="setSelectedItem(member.id)">test 
    <ul> 
     <li ng-click="setSelectedItem(member.id)">test 2 
     <ul> 
      <li ng-click="setSelectedItem(member.id)">inner test2 
      </li> 
     </ul> 
     </li> 
    </ul> 
    </li> 
</ul> 

上面的樹結構是由兩個指令通過使用this堆棧溢出問題產生的。ul-li裏面ng-click多次射擊

測試被點擊時setSelectedItem()被調用一次。當test2被點擊setSelectedItem()被調用兩次。當內部測試2被點擊setSelectedItem()被稱爲三次。

任何人都可以幫助我解決這個問題。點擊內部li標籤時,我只需要點擊一次該點擊。謝謝

+0

嘗試向上冒泡 – guradio

+0

U可以附上加上'e.stopPropagation()'停事件NG-點擊指令父UL和使用event.target財產 – Vijaykrish93

+0

顯示您的setSelectedItem功能代碼訪問的目標。 – Sumanta736

回答

2

要停止事件傳播,請使用下面的代碼。

<li ng-click="setSelectedItem(member.id); $event.stopPropagation();">test</li> 
+0

感謝您的幫助 –

+0

歡迎,juz回饋社區! –

2

使用$event.stopPropagation();。爲了防止點擊事件給父母。

<ul> 
    <li ng-click="setSelectedItem(member.id);$event.stopPropagation();">test 
    <ul> 
     <li ng-click="setSelectedItem(member.id);$event.stopPropagation();">test 2 
     <ul> 
      <li ng-click="setSelectedItem(member.id);$event.stopPropagation();">inner test2 
      </li> 
     </ul> 
     </li> 
    </ul> 
    </li> 
</ul> 
+0

第一級沒有必要 – Grundy

+2

@Grundy剛剛添加爲預防措施,因爲我們不知道什麼是父元素及其綁定。 – RRK

+0

@RejithRKrishnan謝謝你的回答 –