JQuery Dragable上的KeyDown事件不会触发

时间:2018-09-24 13:59:30

标签: jquery jquery-ui keyboard-shortcuts jquery-ui-draggable

我动态添加了可拖动元素,并且可以通过dropzone删除它们。现在,我想添加通过按键删除它们的可能性。 我尝试使用以下代码:

$('.draggable').keydown(function(e){
    if(e.keyCode == 46) {
        $(this).remove();
    }
});

任何想法为什么这行不通?

2 个答案:

答案 0 :(得分:0)

您可以尝试将搜索类的输入作为.on()方法的参数传递,如下所示:

$('document').on('keydown', '.draggable', function(e) {
       alert("Method Hit");
       if(e.keyCode == 46) {
            console.log($this);
            $(this).remove();
        }
    });

答案 1 :(得分:0)

我认为我看到了问题。 @Ctrl_Alt_Defeat在正确的路径上,但是类.draggable上的keydown事件没有意义。由于这是针对jQueryUI可拖动的,因此仅当.draggable是当前关注的类时才会触发这些事件。当您想要时,可能不会发生。

我认为您可能想将事件处理程序添加到文档中,但不指定可拖动类。

$('document').on('keydown', function(e) {
   alert("Method Hit");
   if(e.keyCode == 46) {
        console.log("Remove the draggable class now");
        $(".draggable").remove();
    }
});

当然,此方法会将事件应用于整个文档,因此,如果您单击delete,则具有可拖动类的 any 元素将被删除。如果您认为可以,那么可以。如果要执行有针对性的删除,则可以单击以添加一个类,然后让按下按钮删除最后单击的.draggable。