Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/jquery/69.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
Javascript 单击并按键时使用remove()删除元素_Javascript_Jquery_Html - Fatal编程技术网

Javascript 单击并按键时使用remove()删除元素

Javascript 单击并按键时使用remove()删除元素,javascript,jquery,html,Javascript,Jquery,Html,我想添加一个删除模式,用户可以通过按某个键进入该模式(我现在使用键“enter”,e.which==13检查在下面的示例中按下的键是否为enter) 因此,基本上当用户按下enter键时,我会检查我们是否已经处于删除模式,如果没有(checker==1),我们会输入它,然后我会在click()上为类为“.element1”的对象添加一个函数 如果用户未处于删除模式(checker==2),我将尝试删除click方法 但由于某种原因,这部分不起作用 谢谢大家 编辑 我还尝试将.click添加到.e

我想添加一个删除模式,用户可以通过按某个键进入该模式(我现在使用键“enter”,e.which==13检查在下面的示例中按下的键是否为enter)

因此,基本上当用户按下enter键时,我会检查我们是否已经处于删除模式,如果没有(checker==1),我们会输入它,然后我会在click()上为类为“.element1”的对象添加一个函数

如果用户未处于删除模式(checker==2),我将尝试删除click方法

但由于某种原因,这部分不起作用

谢谢大家

编辑

我还尝试将.click添加到.element类:(在我看来,在我悬停并按enter键时,它应该以这种方式删除该元素)

但每当我按enter键时,它就会删除所有的.element


任何方法对我都适用。

试着像这样使用开/关,但不要删除该元素:

var checker = 1;
$(document).keypress(function (e) {

    if (e.which == 13 && checker == 1) {
        checker = 2;
        alert("entered delete mode");
        $(".element1").on('click', function (e) {
            // handle click
        });
    }
    else if (e.which == 13 && checker == 2) {
        checker = 1;
        alert("exited delete mode");

        $(".element1").off('click', '**');
    };

});

.off()
上不能有第二个参数。固定代码:

var checker = 1;
$(document).keypress(function (e) {

    if (e.which == 13 && checker == 1) {
        checker = 2;
        alert("entered delete mode");
        $(".element1").click(function (e) {
            $(this).remove();
        });
    }
    else if (e.which == 13 && checker == 2) {
        checker = 1;
        alert("exited delete mode");

        $(".element1").off("click");
    };

});

我还删除了第二个
.each()
,正如注释中所建议的那样(这是不必要的)

为什么不起作用?console中的任何错误都需要比
更具体,因为某些原因此部分不起作用
从技术上讲,您正在从DOM中删除元素。您没有删除它。@这个人有两个拇指没有错误,只是什么都没有发生,我仍然可以通过单击来删除对象。我想他试图做的事情在我的回答中已经解决了——问题是,如果在退出删除模式后单击该元素,它仍然在删除该元素。我看不出在提供的代码段中,这会如何更改任何内容。
。单击(arg2)
的别名。on(“click”,arg2)
--他的应该可以工作。
off()
真的需要
每个
吗?如果他在该类中有多个元素,我很确定--让我检查一下。不,你没有!我在回答中加了这个。
var checker = 1;
$(document).keypress(function (e) {

    if (e.which == 13 && checker == 1) {
        checker = 2;
        alert("entered delete mode");
        $(".element1").on('click', function (e) {
            // handle click
        });
    }
    else if (e.which == 13 && checker == 2) {
        checker = 1;
        alert("exited delete mode");

        $(".element1").off('click', '**');
    };

});
var checker = 1;
$(document).keypress(function (e) {

    if (e.which == 13 && checker == 1) {
        checker = 2;
        alert("entered delete mode");
        $(".element1").click(function (e) {
            $(this).remove();
        });
    }
    else if (e.which == 13 && checker == 2) {
        checker = 1;
        alert("exited delete mode");

        $(".element1").off("click");
    };

});