gpt4 book ai didi

javascript - 单击并按下一个键时使用 remove() 删除元素

转载 作者:行者123 更新时间:2023-11-30 14:30:32 26 4
gpt4 key购买 nike

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

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").each(function (i, e) {
$(this).off("click", "**");
});
};

});

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

如果用户未处于删除模式(checker==2),我会尝试删除点击方法。

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

谢谢大家

编辑

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

     $(.element1)
.hover(function (e) {
var deletable = $(this);
$(document).keypress(function (e) {
if (e.which == 13) {
deletable.remove();
}
});
});

但每当我按下 enter 键时,它只会删除所有 .elements

任何方式都适合我。

最佳答案

.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(),正如评论中所建议的(没有必要)。

关于javascript - 单击并按下一个键时使用 remove() 删除元素,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/51267670/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com