Javascript 单击并按键时使用remove()删除元素
我想添加一个删除模式,用户可以通过按某个键进入该模式(我现在使用键“enter”,e.which==13检查在下面的示例中按下的键是否为enter) 因此,基本上当用户按下enter键时,我会检查我们是否已经处于删除模式,如果没有(checker==1),我们会输入它,然后我会在click()上为类为“.element1”的对象添加一个函数 如果用户未处于删除模式(checker==2),我将尝试删除click方法 但由于某种原因,这部分不起作用 谢谢大家 编辑 我还尝试将.click添加到.element类:(在我看来,在我悬停并按enter键时,它应该以这种方式删除该元素) 但每当我按enter键时,它就会删除所有的.elementJavascript 单击并按键时使用remove()删除元素,javascript,jquery,html,Javascript,Jquery,Html,我想添加一个删除模式,用户可以通过按某个键进入该模式(我现在使用键“enter”,e.which==13检查在下面的示例中按下的键是否为enter) 因此,基本上当用户按下enter键时,我会检查我们是否已经处于删除模式,如果没有(checker==1),我们会输入它,然后我会在click()上为类为“.element1”的对象添加一个函数 如果用户未处于删除模式(checker==2),我将尝试删除click方法 但由于某种原因,这部分不起作用 谢谢大家 编辑 我还尝试将.click添加到.e
任何方法对我都适用。试着像这样使用开/关,但不要删除该元素:
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");
};
});