1

jsFiddle 演示链接

嗨,伙计们,当我单击上面演示中给出的 div 层时,我想绑定 keypress 事件处理程序。该功能是使用删除键删除选定的图层。

但是当我按下删除键时,按键处理程序不会触发。请建议。

4

3 回答 3

4

删除“ ()”:

$this.on("keypress", keyAction);

您正在添加undefinedas handler:在您的情况下$this.on("keypress", keyAction())等于$this.on("keypress", undefined),因为keyAction函数不返回任何内容。

此外,您div必须是可聚焦的,以便接收键盘事件。出于这个原因,您需要添加tabindex它:

<div class="dragClass" tabindex="0">

然后selectAction将焦点放在您的 div 以接收按键事件:

$this.focus();

这是演示

有关在静态元素上添加 s 的更多信息,keyboard event例如div,请查看此处

于 2012-06-13T06:47:57.633 回答
2
Use this code it execute for delete key        
             $("#ParentDIV").keyDown(function (e) {
              if (e.keyCode == 46) {
               // Do it
              }
             });
于 2012-06-13T06:50:05.853 回答
1

为了让元素接收按键事件,它需要焦点。一种方法是添加一个tabindex。如果您单击您的元素,然后单击下面小提琴中的键盘按钮,您将获得您的事件。我稍微剥掉了小提琴并移除了干扰焦点的可拖动对象。

http://jsfiddle.net/e2yfC/27/

于 2012-06-13T07:00:40.130 回答