<ul> <li @click="fatherClick"> <div @click.stop="childClick"> </div> </li> </ul>
var vm_target = new Vue({ el: '#vm_target', data: { }, methods:{ /**父元素點擊事件**/ fatherClick:function(event){ var el1 = event.currentTarget; var el2 = event.target; },
childClick:function(event){
} }, created:function(){ } });
在JS中,event.currentTarget獲取到的是click事件綁定的DOM對象,event.target獲取到的為當前所點擊的DOM對象。
若綁定了一個父級元素后,點擊子元素時,會觸發父元素的點擊事件,若需要點擊子元素時不觸發父元素事件,有兩種方法:
1、在父元素中判斷event.currentTarget == event.target是否為true
editTarget:function(event){ var el1 = event.currentTarget; var el2 = event.target; if(el1 == el2){ //do something } }
2、在子元素中,綁定一個阻止冒泡的點擊事件 @click.stop