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

原文地址:https://www.cnblogs.com/liangjing-yy/p/9013061.html

时间: 2024-10-04 17:04:41

VUE 点击事件(父子层级元素点击时踩坑记录)的相关文章

从Listview与Button点击事件冲突看安卓点击事件分发机制

题目有点长.其实实现Listview的时候大家都可能会碰到这样的一个问题,那就是Listview的OnItemClickListener点击事件与Button(或者checkbox)的touch(或者click)事件冲突的问题. 声明一下,非常感谢郭大师的这篇blog: http://blog.csdn.net/guolin_blog/article/details/9097463 原理参考了这篇blog,事实上也是本人功力不够不能阅读源码的缺陷啊. 下面说下自己的解决步骤: 1)首先先set一

自定义的TextView,使部分内容拥有点击事件,并在点击内容上方出现对应的词义等信息

直接看效果图: 上面图中是一个TextView,注册部分内容(KeyWord)是其拥有点击事件,并通过计算KeyWord的坐标,显示KeyWord的想要的一些信息 /** * 一个TextView中包含一个可以点击的KeyWord(关键词),并通过点击关键词,在对应关键词位置正上方展示关键词对应的解释等逻辑 * @author DuGuang * */ public class MainActivity extends Activity { private KeyWordTextView mTv

jQuery移除或禁用html元素点击事件常用方法小结

移除或禁用html元素的点击事件可以通过css实现也可以通过js或jQuery实现. 一.CSS方法 .disabled { pointer-events: none; } 二.jQuery方法 方法一 $(this).click(function (event) { event.preventDefault(); } 方法二 $('a').live('click', function(event) { alert("抱歉,已停用!"); event.preventDefault();

react 点击事件+父子传值

接下来要做的效果是,在父组件添加两个按钮,点击后改变父组件传过去的值 父组件 1 import React, { Component } from 'react'; 2 import Test from './component/test'; 3 //声明welcome组件 4 class welcome extends Component { 5 //声明一个构造函数 6 constructor(props) { 7 super(props); 8 //this.state是定义组件状态,可理

js动态插入的元素点击无效

当点击按钮1时为元素b动态添加类discounted,并对具有类discounted的元素b进行点击事件 $(".btn1").click(function(){ $(".b").addClass("discounted"); }); $(".b.discounted").on("click",function(){ alert("1111"); }) 以前以为动态插入的元素直接用on便

H5_0038:父元素有touch事件,子元素有点击事件,如何实现点击事件

移动端父元素绑定touch事件,子元素绑定click事件 一.问题描述 碰到一个非常头疼的问题,为了做一个滑动效果,给li标签绑定了touch事件.滑动之后,li标签的末尾会出现一个删除按钮,然后点击该删除按钮,删除整个li标签. 看起来没什么问题吧,实际上暗藏杀机啊.给删除按钮绑定点击事件的时候,并没有执行点击事件,而是先执行了父元素,也就是li标签的touch事件. 那怎么解决呢? 最开始想到的是,click事件应该设置成冒泡阶段执行,在设置个阻止冒泡,这样不就不会触发父元素的touch事件

js点击事件防止用户重复点击执行

点击事件里给button标签加一个自定义属性,存上次点击时间 追问: 求详细代码,JS 真心的没怎么做过 追答: <input type="button" id="submit" value="提交"> <script> $(document).ready(function(){     $("#submit").click(function(){       var nowTime = new Dat

回顾vue开发spa(踩坑记录)

使用vueJS开发前端页面差不多也有大半多年了.由于项目后台管理页面最早都是使用JQ进行开发的,刚开始使用vue的时候,只能是直接在页面里面引入vueJS框架进行开发,期间把项目后台的编辑页面和其他复杂页面全部改用vueJS的了(没有用到组件,只是增强了一下交互,开发更简单便捷).由于工期和个人习惯问题,期间也留下了很多坑和隐患,比如不少页面是JQ和vue混用,导致后来改功能的时候痛不欲生-- 所以最近有一个新的后台管理页面,索性使用vue全家桶(vue,vue-router,vue-cil,v

原创:微信小程序bindtap绑定html元素点击事件

什么是事件? 事件是视图层到逻辑层的通讯方式. 事件可以将用户的行为反馈到逻辑层进行处理. 详解(以常见的tap点击事情为例) 模板.wxml代码: <view id="tapTest" data-hi="WeChat" bindtap="tapName"> Click me! </view> JS文件代码: Page({ data:{ ... }, onload:function(){ ... }, tapName: f