[英]Make a function only run once (Javascript)
因此,我试图创建一个将数组的0插槽更改为输入值的函数。 但是我希望此功能只能运行一次。 我该怎么做,非常感谢您的任何帮助。
function submitForm() {
$('#inputForm').submit;
if ($("#inputValue").val() != inputException) {
charSetName();
$("#inputValue").val("");
}
$("#inputValue").val("");
}
function charSetName() {
var nameSet = false;
if (nameSet == false) {
nameSet = true;
charDetails[0] = $("#inputValue").val();
document.getElementById("name").innerHTML = "<li id='name''>Name: " + charDetails[0] + "</li>";
}
}
试试这个,我已经定义了isFunctionCalled:Boolean
变量来处理它。
var isFunctionCalled = false;
function submitForm() {
$('#inputForm').submit;
if ($("#inputValue").val() != inputException) {
if (!isFunctionCalled) {
charSetName();
}
$("#inputValue").val("");
}
$("#inputValue").val("");
}
function charSetName() {
var nameSet = false;
if (nameSet == false) {
nameSet = true;
charDetails[0] = $("#inputValue").val();
document.getElementById("name").innerHTML = "<li id='name''>Name: " + charDetails[0] + "</li>";
}
isFunctionCalled = true;
}
注意执行的变量:
var something = (function() {
var executed = false;
return function () {
if (!executed) {
executed = true;
// do something
}
};
})();
有很多方法可以做到这一点。
一种简单的方法是设置标志值。
if(flag){
//your code here...
flag = !flag;
}
因此,如果标志的值最初为1,它将起作用。 然后,随着标志值更改为0,然后下次调用它时,由于标志为0,因此将不会调用它。
这是一个古老的问题,但由于需要类似的东西而被带到这里。 对于下次再来的人,这就是我最终要做的事情:
我只声明了一个初始计数为0的变量。然后,每次我的函数运行时,它都会自动增加。 我想运行一次的代码只检查计数是否为1,然后运行。 如果没有,它不会。 像这样:
let count = 0;
count === 1 ? doSomething : doNothing
count++
有帮助吗?
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.