我花了最后一小时的一半时间试图找出导致我的JavaScript函数执行“两次”的原因,因为我一直看到开发人员控制台中的所有内容都重复了。
我终于将其追溯到这段代码:
<textarea onkeyup="parseInput(this)"></textarea>
这样做的目的是允许用户将数据粘贴到文本框中,然后让函数parseInput()
尽快运行。 问题与此相关的是,只要它们点击CTRL+V
,该功能就会运行。然后,当他们RELEASE CTRL
时,代码再次运行,(尽管它发送的数据与它刚刚发送的数据完全相同。)
这导致我的函数触发两次。我知道JavaScript必须有一些方法来编写以下逻辑,但我不知道它是什么:
如果它们的CTRL键被释放,我不会运行下一段代码。
有人能指出我正确的方向吗?
答案 0 :(得分:0)
你的函数的第一个参数是event
对象。您应该检查keyCode
属性并根据选择选择以下逻辑。
https://developer.mozilla.org/en-US/docs/Web/API/GlobalEventHandlers.onkeyup