【问题标题】:How can I capture keyboard events (keypress,keyup, ) while dragging an image,bookmark如何在拖动图像、书签时捕获键盘事件(keypress、keyup、)
【发布时间】:2011-06-22 17:22:03
【问题描述】:
$(element).bind("dragover", function () {
    $(document).keypress(function(e){
        console.log(e.which + ": " + String.fromCharCode(e.which));
    });
}

一旦开始拖动,我就无法检测到按键事件。 还有其他方法可以检测键盘输入吗?

【问题讨论】:

  • 如果你在dragover绑定之外绑定按键事件,会这样吗?

标签: jquery drag-and-drop keyboard jquery-events


【解决方案1】:

已知诸如拖动图像、书签(未明确设置为可拖动)和其他模式对话框(如 alert()confirm())之类的事件会“暂停”事件侦听活动以及任何计时器在该上下文中运行。

也就是说,您可能想研究setCapture() 方法。 它为指定元素打开鼠标捕获。

换句话说,它会将所有鼠标事件重定向到指定的 DOM 元素,直到调用 .releaseCapture()

传统上用于拖放场景。

传递true 作为参数将使当前元素(如果是容器)捕获所有鼠标事件。即让父容器拦截事件。

传递false 将使鼠标事件在冒泡之前到达其预期目标。

这些下面的链接是一个很好的起点..

http://blog.stchur.com/category/advanced-javascript/page/2/

http://javascript.gakaa.com/object-setcapture-4-0-5-.aspx

【讨论】:

    【解决方案2】:

    绑定事件不起作用...尝试使用 keypress,keydown,keyup SetCapture 仅适用于 IE,但我需要它与 Chrome 兼容。 我正在尝试使用 addEventListener 做一些事情,但我被它困住了...... 如果我找到解决方案,我会发布它

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2013-09-07
      • 2017-10-15
      • 2012-04-14
      • 2019-03-13
      • 2016-07-14
      • 2013-02-15
      • 1970-01-01
      • 2012-08-06
      相关资源
      最近更新 更多