当前位置: 首页 > news >正文

专业网站推广引流网页无法访问手机

专业网站推广引流,网页无法访问手机,一键优化图片,推广平台使用在项目中,我们经常会遇到需要监听目标元素以外的区域被点击或鼠标移入移出等需求。 例如下面我们有一个表格里面嵌套表单的组件 我希望点击n行的时候,n行的元素变成表单元素进行输入或者选择, 当我点击其他其他区域n行又会恢复成数据展示…

在项目中,我们经常会遇到需要监听目标元素以外的区域被点击或鼠标移入移出等需求。

例如下面我们有一个表格里面嵌套表单的组件
默认展示

我希望点击n行的时候,n行的元素变成表单元素进行输入或者选择,
点击该行

当我点击其他其他区域n行又会恢复成数据展示的样子。
默认展示
那现在我们来想想这种监听应该如何实现呢?

contains

如果你听说过 contains这个方法,那么你会豁然开朗。这个方法的作用是用来判断一个元素是否包含另一个元素。那么如果我们通过事件对象拿到当前事件的目标元素,再通过 contains去判断这个目标元素有没有在我们需要监听的元素内部,就可以轻易实现我们的需求了。

上代码

<!DOCTYPE html>
<html lang="en"><head><meta charset="UTF-8"><meta name="viewport" content="width=device-width, initial-scale=1.0"><title>Document</title><style>body {margin: 0;padding: 0;background-color: aqua;width: 100vw;height: 100vh;}.parent {width: 100px;height: 100px;background-color: yellow;}.son {position: relative;left: 30px;top: 30px;width: 30px;height: 30px;background-color: red;}</style>
</head><body><div class="parent"><div class="son"></div></div><script>const parentEle = document.querySelector('.parent')document.body.addEventListener('click', e => {const target = e.targetif (parentEle.contains(target)) {alert('点击了元素包含区域')} else {alert('点击了元素以外区域')}})</script>
</body></html>

也附上一个可以直接预览效果的地址

当然,我们可以做到更加便捷。如果是在vue项目里我们可以创建一个自定义指令的方式便捷实现监听效果。

export default function install(Vue) {Vue.directive('clickoutside', {bind(el, { value: fun, arg }) {console.log(arg)arg = arg || 'click'document.addEventListener(arg, handleFun.bind(null, el, fun))},unbind(el, { arg }) {document.removeEventListener(arg, handleFun)},})
}function handleFun(el, fun, e) {let flag = el.contains(e.target)if (!flag) {fun()}
}
<button v-clickoutside="fn">按钮</button>

上面是一个极其简单的自定义指令,默认监听点击事件,它可以用来监测点击的元素是否在我们所监测的元素内。不在则执行指令绑定的方法。

最后再补充一个,如果你使用了element-ui,那么他的内部其实是自带了这样一个方法的。
你可以像这样进行引用

import clickoutside from 'element-ui/src/utils/clickoutside'
http://www.yayakq.cn/news/356130/

相关文章:

  • 网站建设启凡网易企业邮箱账号
  • 佛山信息技术网站开发系统炸了我成了系统
  • 网站建设需求说明书品牌推广是什么
  • 顺的网站建设信息徐州网站建设的特点
  • 个人风采网站制作建立网站 英语
  • 免费建站的网址不愁销路的小型加工厂项目年入百万
  • 网站常用代码网站开发pc和手机端
  • 网站怎么进入wordpress 手风琴插件
  • 阿里云自己做网站沧县网站建设公司
  • 专业家装建材网站设计百度网盘网页登录入口
  • 鲜花培训网站建设用安卓做网站
  • h5企业模板网站模板下载怎么判断网站被k
  • 专业网站的特点南昌个人网站建设
  • 亚马逊网站如何做商家排名金融平台网站开发
  • 哪个做网站号码网站建设
  • 学院网站建设新闻简报富阳有没有做网站的
  • 如何快速建一个网站线上营销活动有哪些
  • 网站登录界面源码photoshop网站模板设计教程视频
  • 扬州做公司网站的公司python在线编程网址
  • 网站 文章排版wordpress删除多余图片的插件
  • 商城网站建设自助建站平台免费psd模板素材
  • 枣庄网站建设枣庄极速微网站建设cms
  • wordpress站点登陆网站被黑后怎么补救
  • 天津商城网站制作wordpress颜文字插件
  • 巩义网站推广优化做网站做那一网站好
  • 什么网站上可以做国际贸易网站建设 金手指 下拉22
  • 网站雪花代码wordpress兼容手机吗
  • 分析网站规划建设目标湖南常德天气
  • 韩国网站模板下载地址百度云搜索引擎入口 百度网盘
  • 中小企业网站营销上海建设银行网站网页