【问题标题】:dojo drag and drop and key handlersdojo 拖放和键处理程序
【发布时间】:2009-11-11 05:31:47
【问题描述】:

我有一个带有多个 dnd 项目的 dojo.dnd.Source 容器。我想让用户选择源中的 dnd 项目之一,然后使用他们的后退/前进键导航到源中的其他项目。我尝试在 dnd 项目上设置 onkeyup/onkeydown 处理程序,但它们似乎没有触发。我还尝试在 dnd 源容器上设置密钥处理程序,但也没有运气。

关于这是否可能的任何想法 - 如果可能,我应该在哪个 dom 节点上附加我的 keyup/keydown 侦听器?

谢谢

肖恩

PS - 在 Adob​​e AIR 应用程序中使用 dojo 1.3。

【问题讨论】:

    标签: dojo drag-and-drop


    【解决方案1】:

    一般来说,键事件不像鼠标事件那样是特定位置的,它们以焦点节点为目标,如单选按钮或文本框。我怀疑你那里没有表单节点。您始终可以尝试自己模拟它,但 Dojo DnD 不支持开箱即用。

    【讨论】:

    • 感谢 Eugene,@nicrizzo 提示我将 keyup 处理程序附加到 dojo.doc 并从那里获取。我尝试了这个并考虑生成事件以传递给 Selector.js 中的 onMouseDown,但事实证明这有点困难。我最终查看了 Selector.js 中的 selectAll 函数,并且能够提出一些逻辑,我可以将我想要标记为选中的节点的 id 传递给 _addItemClass。这似乎工作正常。您如何看待 Selector.js 中的 API,它接受您想要标记为选中的 domNode 或 id?
    • 那很好,但它应该作为插件实现,所以无论谁需要它,都应该“dojo.require”它。签署 CLA,打开增强票证并附加补丁。
    • 嘿,Eugene,试一试您的建议 - 如果您认为 API 有用且代码可靠,我将继续填写 CLA 并打开增强票证。干杯肖恩
    • 看起来不错。继续使用 CLA,但不要忘记添加相关测试。
    • Hey Eugene - 将测试和完整源代码添加到 github.com/seanoshea/dojox-dnd。明天会拿到CLA。有一些关于允许用户使用边界框来选择 dnd 项目的想法 - 可能会在几天后将其添加到 git repo。肖恩
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多