模拟实现类select功能
 
项目背景
 
在具体开发过程中需要实现一个自定义生成table(将在后续文章中介绍),这篇文章主要展示这个类select下拉框功能。
 
功能简述
 
主要是点击按钮显示隐藏的div,在div内可以编辑内容,点击除div的区域可以隐藏编辑的内容
 
思路
 
通过给三个地方绑定onclick事件来实现这个功能。
 
function showArea(e,flag){
e.stopPropagation();
if(flag) return;
this.state=!state
}
 
1.在按钮处 2.在卡片处 3.在全局
 
之前遇到一个坑就是我只将点击事件绑定到angular路由切换的视口区域,有时就会带来bug,点击事件失效。后来导师指点说将点击事件冒泡到body上捕获就可以解决点击失效的问题。
 
在按钮处会阻止冒泡,不触发绑定在全局上的点击事件,切换可视区域的显示状态。在可视区域上绑定事件添加flag状态,阻止他的冒泡事件,同时不触发状态的切换功能。然后在body上触发冒泡事件,隐藏可视区域。 基本的一个类select框功能就实现了