判断页面的点击事件是否发生在某元素上

本文地址:https://www.cnblogs.com/veinyin/p/10999265.html 

有时我们需要判断页面的点击事件是否发生在某元素上

使用场景如  自己实现下拉框  点击页面其它地方时下拉部分隐藏

下面代码为 vue 场景下

// template 中
div(ref="myDiv")

// created 中添加 click 事件句柄  判断点击事件是否发生在某元素上
document.addEventListener(‘click‘, event => {
    const e = event || window.event
    if (this.$refs.myDiv && !this.$refs.myDiv.contains(e.target)) {
        console.log(‘not in myDiv‘)
    }
})

如果是非全局组件  需要在 beforeDestroy 中移除事件句柄

此时需要在 methods 中写一个具名函数   第二个参数为该函数名

// 添加事件句柄
created() {
    document.addEventListener(‘click‘, myFunc)
},

// 移除事件句柄
beforeDestroy () {
    document.removeEventListener(‘click‘, myFunc)
},

// 相应函数
methods: {
    myFunc(event) {
        // 同上
    }
}

END~~~≥ω≤

原文地址:https://www.cnblogs.com/veinyin/p/10999265.html

时间: 2024-10-10 05:00:24

判断页面的点击事件是否发生在某元素上的相关文章

屏蔽用户双击按钮产生的后续点击事件重复发生问题

屏蔽web端双击鼠标产生问题 从上面两张图就可以看出,如果用户误操作双击"确认支付并出保险"按钮,则会出现如上图现象.如何消除此现象呢? 我想到的解决方法:在调用的click事件时,设置一个flag开关,flag类型为boolean型默认值为true的且为全局变量.flag为判断条件放入if语句中,当第一次点击触发事件时,设置flag为false并执行点击事件绑定方法.如此,当用户点击第二次时,flag为false,不执行点击事件绑定方法.这就有效避免了上图问题的发生.       v

如何监控iframe里面页面的点击事件

根据浏览器同源策略,如果iframe中是一个跨域的页面,那么在父页面中无法监听到iframe页面中的所有行为. 最近在看论坛,发现了一个变通的办法--监听鼠标停留在iframe上这个动作,顺便记录下来: $('iframe').hover( function () { alert('AD frame!'); ); 顺藤摸瓜,就发现了腾讯团队写的<iframe跨域通讯解决方案>两篇文章,地址如下: http://www.alloyteam.com/2012/08/lightweight-solu

js在父元素上添加点击事件,怎么阻止子元素继承父元素的点击事件?

div.onclick = function(ev){ if(ev.target!=this) return; else { ... } }

jQuery触发a标签点击事件-为什么不跳转

今天开发发现 使用jQuery触发a标签的点击事件,当前的样式发生了变化,可是没有跳转,为什么? 百度后找到的解决方案: <a onclick="hanle()" href="test.jsp" target="main" ><span id="hand">处理</span></a> 在a标签中加上span标签,触发span标签的点击事件. 直接在a标签上触发点击,当前链接onc

android点击事件的分发过程

转载请注明出处 http://blog.csdn.net/a992036795/article/details/51698023 本文将讲述android点击事件的分发过程 我的上一篇文章讲述了android点击事件的来源,本文接着讲述当点击事件传输到Activity之后 分发的过程是什么样的. 上一篇文章链接: http://blog.csdn.net/a992036795/article/details/51690303 通过上一篇文章我们知道,事件最终会通过activity分发到Phone

鼠标点击事件

1 鼠标点击事件 2 onclick 元素上发生鼠标点击时触发. 3 ondblclick 元素上发生鼠标双击时触发. 4 ondrag 元素被拖动时运行的脚本. 5 ondragend 在拖动操作末端运行的脚本. 6 ondragenter 当元素元素已经被拖动到有效拖放区域时运行的脚本. 7 ondragleave 当元素离开有效拖放目标时运行的脚本. 8 ondragover 当元素在有效拖放目标上正在被拖动时运行的脚本. 9 ondragstart 在拖动操作开端运行的脚本. 10 on

点击事件作用域

当有这样的需求:点击某些区域(对应html标签)时执行一些操作,点击其它区域执行不同的操作: 对于某些操作,假设A为点击有效作用域,那么B为无效域(即点击B无法触发这些操作),有以下两个步骤获得A: 1.判断点击事件是否作用于A本身(即html标签A本身): $('#A').is(e.target) //值为true表示点击事件作用于A 2.判断点击事件是否发生在A内部(即html标签A的子标签) $('#my_birth').has(e.target).length==0 //等式成立,则点击

Android代码学习--点击事件的几种写法

由来:常规的写法参见<写一个apk>,每次点击按钮,按钮先查找文本框等元素,然后再操作,其实查找操作是很费时的操作,因此将该定义放到Activity的onCreate中:Oncreate只会执行一次,这样Activity一旦执行,就先创建好控件们了. 第二种方法:通过匿名内部类的方法:就是button.setOnClickListener(new OnClickListener(){ //实现OnClickListener接口 @Override public void onClick(Vie

Android开发之PullToRefresh的Click点击事件的监听实现长按删除Item

本文为原创博客,出自http://blog.csdn.net/minimicall 到今天为止,搜芽的卖家版本应该来说已经基本完成,攻坚克难的一路过来.速度也控制的比较好. 项目过程进度 从任务分配量上来看,基本还是我个人英雄主义.接下来这样不行.但暂时也没办法,师弟还需要一个学习的过程.智质不错,而且态度端正.相信搜芽买家,他就可以承担更多的开发任务了. 接下来进入正题,说我们的PullToRefresh的点击事件.其实,我是想做长按进入删除的. 见效果图.当然这个是我做出来之后的了,但做出来