Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/jquery/72.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Jquery 按Esc键停止/取消拖动操作_Jquery_Primefaces_Drag And Drop_Jquery Ui Draggable_Primefaces Datatable - Fatal编程技术网

Jquery 按Esc键停止/取消拖动操作

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

我希望能够在拖动操作开始后停止/取消拖动操作,例如按Esc键。 我的工作基于一个Primefaces展示示例

在keyup事件中,我尝试了很多方法来恢复drop事件,甚至将事件发送到未丢弃的位置。我还尝试修改PrimeFaces.widget.Droppable.prototype.bindDropListener函数

<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>