我有一个选项列表网页界面:一对选择元素,它们之间有一对按钮(左箭头和右箭头)。用户可以在两列之间移动项目,例如,选择左列中的一个选项并单击右箭头。
现在我有一个增强请求:有人希望能够在两列之间拖放项目而不是单击按钮。我的初始双选框设置的问题是,只要我单击其中一个突出显示的选项以启动拖动,就会取消选择所有其他选定选项。使用jQuery,我已经将mousedown事件处理程序附加到选择框和每个单独的选项,它们只对事件对象调用preventDefault(),但这还不够。在Firefox 3上,点击选项会立即失去焦点,但所有其他选项仍然被删除,而在IE6上(我遗憾地仍然需要支持)它完全没有任何区别。
所以我想我可以使用列表元素或div或其他东西创建一个合理的选择框传真。我可以创建一些合理的外观,适用于Firefox,但在IE6上,如果我按住Shift键点击我的伪选择对象的元素(为了选择一系列选项),IE选择我之间的所有文本点击,我点击的最后一个地方。我再次将preventDefault-mousedown,mouseup和click处理程序附加到所涉及的所有元素,但它没有帮助。
我甚至尝试在我的原始选择框和伪选择对象上覆盖透明div,想要拦截鼠标点击并手动管理选择,但我不能让它在IE上工作。如果我使用选择框,我无法阻止点击更改选择,如果我使用看起来像选择元素的文本,我无法阻止它在移位点击上选择一系列文本。< / p>
是否有一些普遍的解决方案,或者我只是运气不好?
答案 0 :(得分:0)
使用两个连接的可排序列表查看Jquery UI Sortable:http://jqueryui.com/demos/sortable/#connect-lists
只是:
$('.selector').sortable({ connectWith: '.otherlist' });
答案 1 :(得分:0)
我最终选择了“无法选择”的属性。