所以我试图创建一个将数组的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>";
}
}
答案 0 :(得分:1)
试试这个,我已经定义了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;
}
答案 1 :(得分:1)
注意已执行的变量:
var something = (function() {
var executed = false;
return function () {
if (!executed) {
executed = true;
// do something
}
};
})();
答案 2 :(得分:0)
有很多方法可以做到这一点。
一个简单的方法是设置一个标志值。
if(flag){
//your code here...
flag = !flag;
}
所以,如果标志的值一开始是1就可以了。然后,当标志值更改为0时,则下次调用时,将不会调用它,因为标志为0。
答案 3 :(得分:0)
这是一个古老的问题,但由于需要类似的东西而被带到这里。
对于下次再来的人,这就是我最终要做的事情:
我只是声明了一个初始计数为0的变量。
然后,每当我的函数运行时,它就会自动增加。
我想运行一次的代码只检查计数是否为1,然后运行。如果没有,它不会。
像这样:
let count = 0;
count === 1 ? doSomething : doNothing
count++
有帮助吗?