Javascript 如何防止JS中的多函数调用

Javascript 如何防止JS中的多函数调用,javascript,Javascript,我是JS新手,我需要在1次单击中执行我的函数,并且忽略第一次单击后的所有其他单击 let count=0; 函数func(){ 如果(计数=0){ console.log(“首次单击”); 让计数=1; }否则{ console.log(“没有第一次单击”); } } Func类似的功能应该可以使用: <button onclick="func()">Func</button> <script> let count = 0; function fu

我是JS新手,我需要在1次单击中执行我的函数,并且忽略第一次单击后的所有其他单击

let count=0;
函数func(){
如果(计数=0){
console.log(“首次单击”);
让计数=1;
}否则{
console.log(“没有第一次单击”);
}
}

Func
类似的功能应该可以使用:

<button onclick="func()">Func</button>
<script>
  let count = 0;

  function func() {
    if (count == 0) {
      console.log("First Click");
      count = 1;
    } else {
      console.log("No first Click");
    }
  }
</script>
Func
让计数=0;
函数func(){
如果(计数=0){
console.log(“首次单击”);
计数=1;
}否则{
console.log(“没有第一次单击”);
}
}
说明:
这里count是一个全局变量,您需要将其值更改为与比较器不同的值,即(count==0)。

我建议您这样做:

<button onclick="func()">Func</button>
<script>
   var enabled = true;

   function func() {
      if (enabled) {
         console.log("Do something");
         enabled = false;
      }
   }
</script>
Func
var enabled=true;
函数func(){
如果(已启用){
log(“做某事”);
启用=错误;
}
}
要在上下文中使用持久变量,您只需要将变量从let更改为var。此解决方案应该可以工作,而且可能会更干净一些,因为我认为您可能不需要使用计数器来检查您是否已经执行了该函数,这是一项额外的工作

删除let关键字

试试这个:

<script>
  count = 0;

function func() {
  if (count == 0) {
    alert("first");
    console.log("First Click");
     count = 1;
  } else {
    alert("no first");
    console.log("No first Click");
  }
}
</script>

计数=0;
函数func(){
如果(计数=0){
警报(“第一”);
console.log(“首次单击”);
计数=1;
}否则{
警惕(“不首先”);
console.log(“没有第一次单击”);
}
}

要使count变量在每次函数调用中保持不变,最好的方法是使用闭包

<button onclick="func()">Func</button>

<script>

  var clickTrack = (function() {
    var count = 0;
    return function() {
        if (count == 0) 
            console.log("First Click");
      else
            console.log("No first click");
      count++;
        return;
     }
   })();

  function func() {
        clickTrack();

  }

 </script>
Func
var clickTrack=(函数(){
var计数=0;
返回函数(){
如果(计数=0)
console.log(“首次单击”);
其他的
console.log(“没有第一次单击”);
计数++;
返回;
}
})();
函数func(){
单击轨迹();
}

let count=1
count=1
您正试图在
if
块内创建一个名为
count
的新变量,该语句--
let count=1。如果要使用已声明的值,请删除
let
。阅读更多关于这个问题的信息。没错。让计数=1;是罪魁祸首。