遇到一个需求,要给一个 div 添加 blur 事件,具体情况是: el-seclect 不满足项目下拉列表的需求,找了一些插件,也没发现比较好用的,所以就决定自己用 div 实现效果,也就遇到了当鼠标点击其他空白处时, div 要隐藏起来的问题
刚开始毫无思路,查了查资料,发现还真的可以
1. 直接给 div 加 blur 事件
不生效,然后发现是 div 不能直接加 blur 事件
2.用 tabindex
差不多就是这种: https://blog.csdn.net/u013112461/article/details/90747257 ,效果很奇怪,不符合需求
最后想到了,用 vue 去监听所有的点击事件,从里面筛选出来这个 div ,除了点击这个 div ,其他地方全部隐藏
错误写法:
这个想法没问题,但是运行之后,控制台报错
Uncaught TypeError: this.$refs.boxRef.contains is not a function at HTMLDocument.eval ,就很烦,然后查了好久,终于找到一篇相关博客,原因就是 用js原生获取dom的方法代替ref方式
修改之后:
到这里就成功的实现了 div 的 blur 效果,学废了学废了!
贴上大佬博客: https://www.freesion.com/article/33241074504/
公司有个新需求,要给ios那边传送文章的高度,好让ios完成一个复杂布局。我这边的内容是后台富文本编辑好的html文件,包括了图片视频文字等内容,所以全部加载完成前高度是一直发生变化的。
一开始做的时候没想得太仔细,html内容加载后我就读取高度了,这就导致一些图片还没加载完全时,整个内容高度就读取了,造成高度过小,后台换了个思路想遍历所有图片和视频的内容,用onLoad钩子监听这些元素是否加载完成,但发现没作用,这种监听法法只适应在比如img标签还没加载进去时就绑定监听事件的,整个html插入后就无法再使用。
最后,百度了一番,看到牛人的杰作,只需创建一个宽高暂满而且不可视的iframe便签,然后监听iframe里面window的resize事件就好了。真是方便啊。
参考文章
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)