即使未调用函数keyup,也会执行该函数

Function keyup executed even though its not called

本文关键字:函数 执行 keyup 调用      更新时间:2023-12-27

我有一个名为itemtitle的输入。当我点击一个按钮时,名为counter的元素会增加一。所以下面的代码适用于第一项。计数器div的innerHTML为1,当我输入itemtitle时,文本显示在item1上。

if (document.getElementById("counter").innerHTML === "1"){  
$("#itemtitle").keyup(function() {
$("#item1").html($("#itemtitle").val());
});

我再次单击按钮,HTML内部的计数器上升到2。我有以下代码。

if (document.getElementById("counter").innerHTML === "2"){  
$("#itemtitle").keyup(function() {
$("#item2").html($("#itemtitle").val());
});

但是当我在itemtitle输入中写入时,文本同时显示在item1和item2上。即使计数器值为2。我该如何解决此问题?当计数器为1时,我只希望文本转到项目1。当计数器为2时,它应该只转到项目2。

提前感谢

您正在根据这两个if条件注册keyup事件,因此这并不意味着特定的events只会在if condition匹配时激发,它会一直激发。因此,您应该做的是,在keyup事件中编写一个if condition,这样分支语句就会根据html值做出反应。即]1或2个

试试这个,

$("#itemtitle").keyup(function() {
   if($.trim($("#counter").html()) === "1")
     {
       $("#item1").html($(this).val());
     }
   else
     {
       $("#item2").html($(this).val());
     }
});

我现在解决了它。他们仍然能够分开。我把它改成:

$("#itemtitle").keyup(function() {
if (document.getElementById("counter").innerHTML === "1"){
$("#item1").html($("#itemtitle").val());
}
});

这样,每当我在输入中输入内容时,它都会检查值。