Dojo DnD删除所选项目

时间:2016-02-17 17:31:19

标签: drag-and-drop dojo

有没有办法从dojo DnD Source中删除所选项目,方法是将它们拖出容器,或者按DEL键?我尝试通过添加dojo.connect-> onkeypress来实现这一点,但似乎Source不会听这个事件。

... 回应RodrigoQuiñonesI've created a jsfiddle

//[...]
on(dom.byId('sortByItems'), 'keypress', function(evt) {
   if (evt.charOrCode == keys.DELETE)
       console.log('User wants to unselect:', sortByDnDTarget.getSelectedNodes());
});

//[...]

提前致谢。

1 个答案:

答案 0 :(得分:0)

首先关闭; dndSource不会收听按键事件。我相信它永远不会重点关注,只有它中包含的项目才能得到关注。然而,它会听取诸如“点击”之类的内容。等

其次,keypressed事件处理程序中未捕获DELETE键,因为此设计仅用于捕获可打印的内容,因此<enter><del><esc>等。不适用于该事件。

改为使用keyupkeydown听众 - 并将其应用于window

以下代码段应该符合您的目标:

sortByDnDTarget.getSelectedNodes().forEach(function(li) {
    sortByDnDTarget.delItem(sortByDnDTarget.getItem(li.id));
});