监听事件过多,而且事件冒泡也会影响事件的执行,导致某些事件会出现执行多次的情况。儿童年龄的选择框是根据儿童的人数来生成的,有几个儿童,就有几个年龄选择框。这种情况下,年龄的选择框肯定是动态创建的,无法针对年龄的select进行事件监听,只能采用事件委托的形式,所以最后把对select、ul下拉列表、btn按钮的点击事件,还有当点击container内其它位置时,ul下拉列表隐藏。全部委托给了dropDownContainer元素。下面附上代码html结构代码:Main.js文件:Utils.js文件:

原生js实现下拉框选择组件

原生js实现下拉框选择组件

原生js实现下拉框选择组件

原生js实现下拉框选择组件

原生js实现下拉框选择组件

原生js实现下拉框选择组件

原生js实现下拉框选择组件

原生js实现下拉框选择组件

原生js实现下拉框选择组件

原生js实现下拉框选择组件

原生js实现下拉框选择组件