Dojo DnD 删除选中的项目
Dojo DnD delete selected items
有没有办法通过将项目拖出其容器或按 DEL 键从 dojo DnD 源中删除选定项目?我试图通过添加 dojo.connect->onkeypress 来实现这一点,但似乎源不听这个事件。
...
回应 Rodrigo Quiñones I've created a jsfiddle
//[...]
on(dom.byId('sortByItems'), 'keypress', function(evt) {
if (evt.charOrCode == keys.DELETE)
console.log('User wants to unselect:', sortByDnDTarget.getSelectedNodes());
});
//[...]
提前致谢。
首先; dndSource 不监听按键事件。我相信它永远不会获得 'focus',只有包含在其中的项目才能获得焦点。但是它确实会听 'click' 等
其次,在 keypressed
事件处理程序中未捕获 DELETE 键,因为它仅设计用于捕获可打印的内容,因此 <enter>
、<del>
和 <esc>
等不适用于该事件。
改为使用 keyup
或 keydown
听众 - 并将它们应用于 window
以下代码段应该可以满足您的目标:
sortByDnDTarget.getSelectedNodes().forEach(function(li) {
sortByDnDTarget.delItem(sortByDnDTarget.getItem(li.id));
});
有没有办法通过将项目拖出其容器或按 DEL 键从 dojo DnD 源中删除选定项目?我试图通过添加 dojo.connect->onkeypress 来实现这一点,但似乎源不听这个事件。
... 回应 Rodrigo Quiñones I've created a jsfiddle
//[...]
on(dom.byId('sortByItems'), 'keypress', function(evt) {
if (evt.charOrCode == keys.DELETE)
console.log('User wants to unselect:', sortByDnDTarget.getSelectedNodes());
});
//[...]
提前致谢。
首先; dndSource 不监听按键事件。我相信它永远不会获得 'focus',只有包含在其中的项目才能获得焦点。但是它确实会听 'click' 等
其次,在 keypressed
事件处理程序中未捕获 DELETE 键,因为它仅设计用于捕获可打印的内容,因此 <enter>
、<del>
和 <esc>
等不适用于该事件。
改为使用 keyup
或 keydown
听众 - 并将它们应用于 window
以下代码段应该可以满足您的目标:
sortByDnDTarget.getSelectedNodes().forEach(function(li) {
sortByDnDTarget.delItem(sortByDnDTarget.getItem(li.id));
});