有没有办法从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());
});
//[...]
提前致谢。
答案 0 :(得分:0)
首先关闭; dndSource不会收听按键事件。我相信它永远不会重点关注,只有它中包含的项目才能得到关注。然而,它会听取诸如“点击”之类的内容。等
其次,keypressed
事件处理程序中未捕获DELETE键,因为此设计仅用于捕获可打印的内容,因此<enter>
,<del>
和<esc>
等。不适用于该事件。
改为使用keyup
或keydown
听众 - 并将其应用于window
以下代码段应该符合您的目标:
sortByDnDTarget.getSelectedNodes().forEach(function(li) {
sortByDnDTarget.delItem(sortByDnDTarget.getItem(li.id));
});