VUE 点击事件(父子层级元素点击时踩坑记录)

<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

 

posted @ 2018-05-09 11:07  咩咩阳  阅读(27099)  评论(1编辑  收藏  举报