dojo拖放和键处理程序

dojo拖放和键处理程序,dojo,drag-and-drop,Dojo,Drag And Drop,我有一个包含多个dnd项的dojo.dnd.Source容器。我想让用户选择源中的一个dnd项,然后使用其向后/向前键导航到源中的其他项。我尝试在dnd项上设置onkeyup/onkeydown处理程序,但它们似乎没有启动。我还尝试在dnd源容器上设置键处理程序,但也没有成功 关于这是否可能,有什么想法吗?如果有,我应该在哪个dom节点上附加keyup/keydown侦听器 谢谢 肖恩 PS-在AdobeAIR应用程序中使用dojo 1.3。一般来说,按键事件不像鼠标事件那样是位置特定的,它们的

我有一个包含多个dnd项的dojo.dnd.Source容器。我想让用户选择源中的一个dnd项,然后使用其向后/向前键导航到源中的其他项。我尝试在dnd项上设置onkeyup/onkeydown处理程序,但它们似乎没有启动。我还尝试在dnd源容器上设置键处理程序,但也没有成功

关于这是否可能,有什么想法吗?如果有,我应该在哪个dom节点上附加keyup/keydown侦听器

谢谢

肖恩


PS-在AdobeAIR应用程序中使用dojo 1.3。

一般来说,按键事件不像鼠标事件那样是位置特定的,它们的目标是聚焦的节点,比如单选按钮或文本框。我怀疑你那里没有表单节点。您可以尝试自己模仿它,但Dojo DnD不支持它。谢谢Eugene,@nicrizzo提示我在Dojo.doc上附加一个keyup处理程序,并从那里获取它。我尝试了这一点,并研究了如何在Selector.js中生成要传递到onMouseDown的事件,但事实证明这有点困难。最后,我查看了Selector.js中的selectAll函数,并找到了一些逻辑,可以将要标记为选中的节点的id传递到_addItemClass中。这似乎很管用。您认为Selector.js中的API会接受您想要标记为选中的domNode或id吗?这很好,但它应该作为插件实现,所以无论谁需要它,都应该“dojo.require”它。签署一个CLA,打开一个增强票证,并附加一个补丁。嘿,Eugene,尝试一下你建议的-如果你认为API有用并且代码可靠,我会继续填写CLA并打开一个增强票证。干杯,好的。继续学习CLA,但别忘了添加相关的测试。嘿,Eugene-在中添加了测试和完整的源代码。我明天会让中情局来。有一些关于允许用户使用边界框选择dnd项目的想法-可能会在几天内将其添加到git回购中。肖恩