jquery-ui - 取消拖动转义键

2024-04-15

我有一个可拖动的列表divs 和一个可放置区域。在 chrome、FF 和 IE9 中,鼠标拖放功能运行良好。我想添加键盘交互。

拖拽div使用按键时应恢复到列表esc钥匙。所以首先我这样做了:

        $(document).keyup( function( e ){
            e.preventDefault();
            console.log(':::keypress:::',e);
            if( e.which=== 27 || e.keyCode === 27 ){                            
                        $( '.ui-draggable-dragging' ).draggable( 'option',  'revert', 'invalid' ).trigger( 'mouseup' );                            
                    }                 
        } );

上面的代码检测到esc按键但div如果超出可投放区域,则会掉落。它不会恢复esc按键。所以我确实喜欢这个here http://forum.jquery.com/topic/how-to-cancel-drag-while-dragging

$( document ).keyup( function( e ){
            //e.preventDefault();
            var mouseMoveEvent, offScreen=-50000;            
            console.log(':::event:::',e);
              if( e.which=== 27 || e.keyCode === 27 ) {
                    console.log(':::into esc keyup:::');

                    mouseMoveEvent = document.createEvent("MouseEvent");
                    offScreen = -50000;

                    mouseMoveEvent.initMouseEvent(
                      "mousemove", //event type : click, mousedown, mouseup, mouseover, etc.
                      true, //canBubble
                      true, //cancelable
                      window, //event's AbstractView : should be window
                      1, // detail : Event's mouse click count
                      offScreen, // screenX
                      offScreen, // screenY
                      offScreen, // clientX
                      offScreen, // clientY
                      false, // ctrlKey
                      false, // altKey
                      false, // shiftKey
                      false, // metaKey
                      0, // button : 0 = click, 1 = middle button, 2 = right button
                      null // relatedTarget : Only used with some event types (e.g. mouseover and mouseout).
                            // In other cases, pass null.
                    );
                    document.dispatchEvent(mouseMoveEvent);                     

                    $( '.ui-draggable-dragging' ).draggable( 'option',  'revert', 'invalid' ).trigger( 'mouseup' );

                //}else{
                    // if (document.createEventObject){
                    //    mouseMoveEvent = document.createEventObject (document.event);
                    //    document.fireEvent(mouseMoveEvent);
                    //    $( '.ui-draggable-dragging' ).draggable( 'option',  'revert', 'invalid' ).trigger( 'mouseup' );
                    // }
                //}                
              }
            });

这在 Chrome 中运行良好。但这在IE和FF中不起作用。 即使我尝试过document.createEventObject and document.fireEvent()对于IE。但它仍然不起作用。

如何恢复可拖动divs 在 chrome、IE 和 FF 上esc钥匙 ?????


我需要相同的功能,我采用了您所拥有的功能,这就是我使用的功能,它在最新版本的 IE、FireFox 和 Chrome 中非常适合我。

手柄ESC键

$( document ).keyup( function( e ) {
    if( e.which=== 27 || e.keyCode === 27 ) {
        $( '.ui-draggable-dragging' ).draggable({'revert': true }).trigger( 'mouseup' );
    }
});

我将其添加到我的可拖动元素中

    $(".draggable-design-part").draggable({
        containment: "parent",
        scroll: true, 
        scrollSensitivity: 100,
        scrollSpeed: 100,
        snap: true,
        stop: function() {
            // Set all draggable parts back to revert: false
            // This fixes elements after drag was cancelled with ESC key
            $(".draggable-design-part").draggable("option", {revert: false });
        }
    });
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

jquery-ui - 取消拖动转义键 的相关文章

  • 如何防止输入文本中出现“后重音”

    我相信这是一个简单的问题 但在谷歌上搜索几个小时后我找不到任何答案 也许我无法在搜索中使用正确的单词 P 我有一个 javascript 方法 可以防止用户用数字以外的其他字符填充文本框 如下面的代码所示 它在 KeyDown 事件中使用
  • 对使用“new”创建的数组上“map”的行为感到困惑[重复]

    这个问题在这里已经有答案了 我对结果感到困惑mapping 使用创建的数组new function returnsFourteen return 14 var a new Array 4 gt undefined x 4 in Chrome
  • jquery 中可点击 div 中的按钮

    我有整个 div 您可以单击它来切换该 div 的主要部分 问题是我在该 div 中也有可点击的按钮 当我点击它时 它会执行它应该做的事情 但同时也会切换整个 div 我怎样才能禁用它 Use event stopPropagation 单
  • Jquery.Validate - 基于哪个选项卡添加/删除规则

    我有一个 Bootstrap 4 选项卡式界面 每个选项卡上都有输入框 我想允许用户根据他们所在的选项卡输入不同的必填字段 因此我希望根据该选项卡添加或删除验证 无论用户位于哪个选项卡 还有一些强制输入 我所做的是创建一个默认验证函数 添加
  • JQuery $.ajax() 在 java servlet 中发布数据

    我想将数据发送到 java servlet 进行处理 数据将具有可变长度并采用键 值对 A1984 1 A9873 5 A1674 2 A8724 1 A3574 3 A1165 5 数据不需要这样格式化 这就是我现在的方式 var sav
  • 从检查元素隐藏 ''

    我有这个 HTML 和 PHP 联系表
  • 为什么我不能同时使用背景图像和颜色?

    我想做的是展示两者background color and background image 这样我的一半div将覆盖右侧的阴影背景图像 而左侧的另一部分将覆盖背景颜色 但是当我使用background image 颜色消失 完全可以使用颜
  • 在“onClick”上切换 DIV 高度

    我想切换分区的高度 我尝试过将 animate 与 if else 语句一起使用 但它只会反弹 我现在使用的代码将隐藏我的分区而不是切换高度 点击时会触发 document ready function content1 toggle fu
  • 如何使用 NextJS 使用自托管字体face?

    使用 NextJS 的字体 我已经阅读了有关如何在 NextJS 中使用自托管字体的不同主题 我得到了什么 wait compiling 当我这样做时 font face font family montserrat src url myp
  • 为什么我的 D3 SVG 图上的轴不会更新?

    I have 简单的 D3 散点图 http www raxacoricofallapatorius com test scattertest html我在显示数据的几个不同属性之间切换 但是虽然我可以更改数据点 并按照我想要的方式进行转换
  • Javascript等待/异步执行顺序

    所以我试图把我的头脑集中在 Promise await async 上 我不明白为什么当 go 执行时 带有 finished 的警报会紧随 console log coffee 之后 当所有函数都使用等待 承诺时 为什么它只等待 getC
  • 未捕获的类型错误:对象 # 在 Chrome 中没有“查找”方法

    可能与 未捕获的类型错误 对象 没有方法 查找 https stackoverflow com q 11134646 561731 这是我的问题的讨论的聊天记录 https chat stackoverflow com rooms 17 c
  • 如何使用 Javascript OAuth 库不暴露您的密钥?

    看着Twitter OAuth 库 https dev twitter com docs twitter libraries 我看到了这个注释 将 JavaScript 与 OAuth 结合使用时要小心 不要暴露你的钥匙 然后 看着jsOA
  • 删除下拉链接并在导航栏菜单中显示其所有项目

    我正在使用 Twitter Bootstrap 及其响应式设计来实现顶部典型的 Twitter Bootstrap 导航栏菜单 在那里我有一些链接和一个下拉菜单 当我将浏览器大小调整为768px或者更少 它会转变为一种新的导航菜单 这一切开
  • 悬停时的 CSS 过渡

    我有个问题 实际上 当我将鼠标悬停在对象上时 我尝试在 div 上进行转换 所以基本上我有一个div 当我将鼠标悬停在div上时 它应该在其顶部显示另一个div 但是它应该被转换 这样悬停效果会更平滑 如果我有这两个 div 怎么可能 di
  • 表单 CSS:根据选中/未选中状态设置单选框的父级(标签)样式

    所以我有一个表格 表格中提出的大多数问题都是使用无线电输入 我要和
  • 如果 jquery 验证激活,如何在单选按钮中放置红色边框[重复]

    这个问题在这里已经有答案了 我的问题是 如果 jquery 验证像示例图片中那样激活 我无法使单选按钮具有红色边框 任何人都可以帮我解决这个问题吗 http i38 photobucket com albums e149 eloginko
  • 如何使用 jQuery 过滤 DropDownList 中的选项

    我有 2 个 DropDownList 第一个 DropDownList 有 4 个选项 第二个 DropDownList 有 20 个选项 我想要一个选项value 1在第一个 DropDownList 中选择我在第二个 DropDown
  • 如何将数据推送到嵌套对象

    如何将另一个元素推入variables来自以下对象的属性 var request name Name id 3 rules name Rule name tags tagId 1 variables variable var1 matchT
  • highchart堆积柱每个类别的总数据

    我想获取每个类别的总数据 这point stackTotal只给出活动数据的总数 从我粘贴的代码示例中 我想知道每种水果的总消耗量 因此 即使我单击右上角图例上的乔的名字 这使得堆叠图表上的所有乔信息都处于非活动状态 我仍然可以知道约翰 简

随机推荐

  • 使用boilerpipe提取非英文文章

    我正在尝试使用锅炉管 http code google com p boilerpipe java 库 用于从一组网站中提取新闻文章 它非常适合英文文本 但对于带有特殊字符的文本 例如带有重音符号的单词 hist ria 无法正确提取这些特
  • Firebase 按顺序获取数据

    我正在使用 Firebase 直到最近才按字母顺序获取数据时没有遇到任何问题 我从来没有使用过查询 我总是只使用数据快照并对其进行一一排序 最近 数据并不总是按字母顺序排列snapVal 如何才能获得按字母顺序排序的数据 snapVal 就
  • commonModalDialogClose(SP.UI.DialogResult.OK, someValue) 抛出错误

    在 SharePoint 2010 中 我有一个可视化 Web 部件 它使用SP UI ModalDialog showModalDialog 该对话框显示正常 但是当我尝试使用关闭对话框时 SP UI ModalDialog common
  • USBInterfaceOpen总是报kIOReturnExclusiveAccess错误

    最近我遇到了这个问题 很头疼 我已经在这个问题上花了一个星期了 但仍然失败 希望您能帮我把这块石头踢开 非常感谢 我的问题 我们公司为iPhone生产USB存储设备 实际上这个存储设备中有一个SDCard 现在 我们想要开发一个 Mac 应
  • li 菜单需要“selected”类

    当用户单击菜单选项卡时 我希望它保持选中状态 并带有白色按钮 这是我的尝试 但它不起作用 如果您单击主页按钮 它不会保持白色 html ul li a href span HOME span a li li a href en us abo
  • 带 redux 的进度条

    我的 React Redux 应用程序中有一个后台上传过程 更新非常频繁 我的减速器看起来像这样 export default function progressReducer state initialState action switc
  • struct - 使用 qsort 对 C 字符串进行排序

    我正在对一堆 IP 进行排序 但由于某种原因 它们的顺序错误 我不太确定问题出在哪里 66 249 71 3 190 148 164 245 207 46 232 182 190 148 164 245 190 148 164 245 20
  • Google 应用已发布到内部测试轨道,但无法找到/下载

    我已成功完成 APK 到内部测试轨道的发布过程 但是 当我尝试使用下面屏幕截图中的 在 GOOGLE PLAY 上查看 链接查看 Google Play 商店上下载的应用程序时 it opens a new window with the
  • 超链接在 Android UC 浏览器中不起作用

    我被一个问题困扰 我正在尝试通过放置在我的网站中的超链接打开 Android 应用程序 下面是链接 href intent Intent action com example myapp category android intent ca
  • 在 Objective-C 中,我可以在 c 浮点数组上声明 @property 吗?

    thing h interface Thing NSObject float stuff 30 property float stuff end thing m implementation Thing synthesize stuff e
  • 玩!没有正确关闭 H2

    我正在使用 Play 编写一个部署在 Tomcat 中的 Web 应用程序 因为应用程序不会处理太多数据 所以我将默认的 H2 数据库与 Hibernate 一起使用 当我想要部署新版本的应用程序时 我关闭 tomcat 擦除旧的 web
  • 如何使 bash 脚本与一个又一个命令一起工作?

    我有一个如下所示的 bash 脚本 首先 它将sorted bam 文件作为输入 并使用 stringtie 工具将每个样本gtf 作为输出 然后每个样本 gtf 的路径将被赋予到 mergelist txt 中 然后对它们使用 strin
  • 如何跟踪 celery 中的重试次数

    在 Celery 中 如何跟踪当前的重试 我知道我可以做这样的事情 app task bind True default retry delay 900 max retries 5 def send email self sender No
  • 活动开启两次

    我有一个使用的应用程序城市飞艇 http urbanairship com 用于推送通知 当通知到达并且用户单击它时 我的应用程序中的活动 A 应该打开并执行某些操作 我已经安装了BroadcastReceiver如图所示在文档中 http
  • 在 C++ 中将数组转换为集合

    有没有更简单的方法使用 C 将数组转换为集合而不是循环遍历其元素 最好使用标准模板库 对于所有标准库容器类型 请使用构造函数 http en cppreference com w cpp container set set std set
  • ASP.NET Owin OAuth (Google / Facebook) 正在重定向到默认的 login.aspx,而不是远程登录页面

    我正在使用 Owin 库 包括 Google 和 Facebook 设置 OAuth 从表面上看 Owin 启动课程注册得很好 我发现我没有被重定向到 Facebook 或 Google 的相应登录页面 而是被重定向到默认的 login a
  • 从 SDK 上的“getLastKnownLocation”获取 null

    我有一个与位置 API 相关的问题 我尝试了以下代码 LocationManager lm LocationManager getSystemService Context LOCATION SERVICE Location loc get
  • 避免 D3.js 中子节点重叠

    我正在使用 D3 js 构建一个树结构 显示 Facebook 用户和他 她的 Facebook 好友 根节点是用户 子节点是好友 我的 UI 中有固定宽度 问题是子节点将相互重叠 var nodes tree nodes root rev
  • 使用 Resharper 7 测试运行程序进行 Jasmine 测试的堆栈跟踪

    如何让 Resharper 7 测试运行程序显示 Jasmine 测试的堆栈跟踪 我的设置是 Resharper 7 在 Jasmine 中构建 测试运行器和 PhantomJs 执行任何失败的测试时 错误消息始终以以下内容结尾 Excep
  • jquery-ui - 取消拖动转义键

    我有一个可拖动的列表divs 和一个可放置区域 在 chrome FF 和 IE9 中 鼠标拖放功能运行良好 我想添加键盘交互 拖拽div使用按键时应恢复到列表esc钥匙 所以首先我这样做了 document keyup function