JavaScript双向选择器的实现 | GCidea's blog
效果
在说具体细节之前,可以先看一下效果,下图中就实现了一个最基本的双向选择器。

注意事项
1.以上组件的编写没有基于原生的CSS,而是引入了AmazeUI框架,利用了框架提供的布局等样式,以下html代码中看到的以“am-”为前缀的class均是如此,具体的含义和使用方法可以参考AmazeUI官方文档。
2.实际使用中,我们往往需要左侧的待选项可以动态可变,那就不能在页面上写死,应该在双向选择器渲染生成之前向后台请求数据,获取最新的待选项即可。而如下代码中仅作为示例,固定写了几个选项。
HTML结构
主要文档结构如下:
1 | <div class="am-g"> |
JavaScript控制逻辑
控制逻辑完整如下,基本的思想就是监听两个列表中每一项的点击事件,当触发点击事件后,遍历另一个列表中的选项,当无重复的情况下,将其从本列表中移除,添加至另一个列表中。
1 | $(function(){ |