[英]How to prevent multiple function call in JS
我是 JS 新手,我需要單擊一次執行我的 function,第一次單擊之后的所有其他單擊都將被忽略。
let count = 0; function func() { if (count == 0) { console.log("First Click"); let count = 1; } else { console.log("No first Click"); } }
<button onclick="func()">Func</button>
(不工作)
刪除 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>
像這樣的東西應該工作:
<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>
說明:這里的 count 是一個全局變量,您需要將其值更改為與比較器不同的值,即(count == 0)。
我會建議你做這樣的事情:
<button onclick="func()">Func</button>
<script>
var enabled = true;
function func() {
if (enabled) {
console.log("Do something");
enabled = false;
}
}
</script>
要在上下文中使用持久變量,您只需將變量從 let 更改為 var。 這個解決方案應該可以工作,而且可能更干凈一些,因為我認為您可能不需要使用計數器來檢查您是否已經執行了 function,這是一項額外的工作。
要讓計數變量在每個 function 調用中保持不變,最好的方法是使用閉包。
<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>
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.