jquery append和appendTo的问题
应媳妇的要求帮写一个下拉列表框点击移到另一个下拉列表的效果,爽快的答应,并说很简单。不过写起来以后才发现有坑!!
需求如下:左边一个可以多选的下拉框,右边一个可以多选的下拉框。双击左边去右边,右边的双击去左边。
刚开始是给option加上双击监听事件,先记录被双击的option,然后从被双击的下拉框中移除被双击的option,在把记录下来的option用append函数添加右边的select里面去。然后点击右边在转移回去,结果转移回去双击事件没有了,还的在加一遍监听事件。挺恶心的,还有就是如果双击最上面的option会把下面的一个也一起转移过去,应为需求里还有一个同类option只能留一个的需求,所以如果两个都被转移过去后就出发的排他的限制,就会被都转回来。
后来看到了一个jquery里的appendTo函数,这个函数好的是对象被添加后就直接从原来的地方移除了,不用自己在记录和手工移除。另外时间最好加在select上,不要加在option上,这样就不会出现丢失事件的问题了。