我正在使用香草JS,HTML和CSS制作浏览器计算器。我目前遇到的问题是,我在按下小数点按钮后试图删除事件侦听器(因此,我不会得到像1.3.5.1等这样的废话。)
function buttonpressing(e){
document.getElementById("display").value += e.target.textContent //updates the display with what you pressed
//if number pressed
if(e.target.className === "number"){
numholder += e.target.textContent;
}
//if decimal is pressed, make sure you cant press it again
if(e.target.id === "decimal"){
//while operations or clear is not pressed
document.getElementById("decimal").removeEventListener("click", buttonpressing);
}
}
buttonchoices.forEach(choice => choice.addEventListener("click", buttonpressing))
我最初在该函数中排除了一些不相关的代码,但是使用此功能时需要“按按钮”。我不明白这个问题。上面的代码将运行并编译,但是十进制事件侦听器不会被“删除”,这将允许我继续按下按钮。我也尝试过在removeEventListener方法内部使用带有false标志的arguments.callee,但无济于事。
如果在您的情况下'console.log'event.target是什么输出?
if(e.target.id === "decimal"){
console.log(e.target)
//while operations or clear is not pressed
document.getElementById("decimal").removeEventListener("click", buttonpressing);
}