调用相同函数的两个dom事件应该只在同一时间发生一次调用该函数

Oct*_*ian 7 javascript

我有一个输入和一个按钮.当我从输入模糊并且输入已更改时,应调用price()函数.此外,当我单击按钮时,应调用price()函数.

问题是当用户修改输入的值并单击按钮时,会调用price()函数两次.我不希望这种情况发生.

我尝试了老式的方法,在输入时检查是否未设置变量"inPriceFunction"为true.这没有用,因为两个事件(模糊和点击)在完全相同的时间执行,if和变量集没有时间发生.

我怎么能避免这种情况?

我尝试过的:

<div>
    <input type=text onchange="price();" />
</div>
<button onclick="price();" />test</button>
<script>
called = 0;
function price() {
    if(called == true){
        return;
    } else {
        called = true;
    }
    console.log("called");
    called=false;
}
</script>
Run Code Online (Sandbox Code Playgroud)

Kha*_* TO 1

单击和更改事件不会同时发生。它们接连发生。

  • 首先,触发“change”事件,设置called = true,然后执行console.log("called");called=false再次设置。
  • 然后,“单击”事件被触发,但是called == false,因此它设置called = true;,然后执行console.log("called");并再次设置called=false