簡體   English   中英

如何只讓用戶調用我的function一個

[英]How to only let the user call my function one

我試圖通過讓用戶單擊一個按鈕移動一個框,但我只希望用戶能夠在“javascript”中調用一次 function。

function myMove() {
  let id = null; let id2 = null;
  const elem = document.getElementById("animate");   
  let pos = 0;
  clearInterval(id);
  id = setInterval(frame, 1);


  function frame() {
    if (pos == 250) {
      clearInterval(id);
       id2 = setInterval(backframe, 1);
    } else {
      pos++; 
      elem.style.top = pos + "px"; 
      elem.style.left = pos + "px"; 
    }
  }
  function backframe() {
    if (pos == 0) {
      clearInterval(id2);
      id = setInterval(frame, 1);
    } else {
      pos--; 
      elem.style.top = pos + "px"; 
      elem.style.left = pos + "px"; 
    }
  }
   
}

要添加一個只觸發一次的事件監聽器, addEventListener可以接受 3 個參數, type, listener, options

options是一個 object ,它有一個名為once的屬性,您已將其設置為true

前任:

button.addEventListener('click', myMove, { once: true })

將這些修改應用於您的代碼:

let wasUsed = false;

function myMove() {
  if (wasUsed) return; // stops the function if it has ran before
  wasUsed = true;
  // the rest of your function doesn't change:
  let id = null; let id2 = null;
  ...
}
button.addEventListener('click', myMove, { once: true })

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM