Jquery 按Esc键停止/取消拖动操作
我希望能够在拖动操作开始后停止/取消拖动操作,例如按Esc键。 我的工作基于一个Primefaces展示示例 在keyup事件中,我尝试了很多方法来恢复drop事件,甚至将事件发送到未丢弃的位置。我还尝试修改PrimeFaces.widget.Droppable.prototype.bindDropListener函数Jquery 按Esc键停止/取消拖动操作,jquery,primefaces,drag-and-drop,jquery-ui-draggable,primefaces-datatable,Jquery,Primefaces,Drag And Drop,Jquery Ui Draggable,Primefaces Datatable,我希望能够在拖动操作开始后停止/取消拖动操作,例如按Esc键。 我的工作基于一个Primefaces展示示例 在keyup事件中,我尝试了很多方法来恢复drop事件,甚至将事件发送到未丢弃的位置。我还尝试修改PrimeFaces.widget.Droppable.prototype.bindDropListener函数 <script type="text/javascript"> //detect Escape key press documen
<script type="text/javascript">
//detect Escape key press
document.addEventListener("keyup", function(event) {
if(event.keyCode === 27){
$('.ui-draggable:data(draggable)').draggable( 'option', 'revert', true ).trigger( 'mouseup' );
}
});
</script>
所以这很棘手,我不得不自己使用它来修复DataTable drop/drop中的一个bug。您必须访问Jquery拖放管理器并取消所有事件 var dragdrop=$.ui.ddmanager.current; 如果拖拽{ document.body.style.cursor='default'; dragdrop.cancel; }
所以这很棘手,我不得不自己使用它来修复DataTable drop/drop中的一个bug。您必须访问Jquery拖放管理器并取消所有事件 var dragdrop=$.ui.ddmanager.current; 如果拖拽{ document.body.style.cursor='default'; dragdrop.cancel; }
谢谢你的回复。我以前试过。它会停止拖动操作,但会执行ajax listener actionView.onDrop,并将新元素添加到列表中。ajax监听器不应该被执行。啊,所以ajax PF代码仍然被订阅和触发。嗯,那更棘手!PrimeFaces.ajax.Queue.abortAll中止所有PF ajax请求怎么样?谢谢您的回复。我以前试过。它会停止拖动操作,但会执行ajax listener actionView.onDrop,并将新元素添加到列表中。ajax监听器不应该被执行。啊,所以ajax PF代码仍然被订阅和触发。嗯,那更棘手!让PrimeFaces.ajax.Queue.abortAll中止所有PF ajax请求怎么样?
<script type="text/javascript">
//detect Escape key press
document.addEventListener("keyup", function(event) {
if(event.keyCode === 27){
$('.ui-draggable:data(draggable)').draggable( 'option', 'revert', true ).trigger( 'mouseup' );
}
});
</script>