2016-05-14 4 views
0

Итак, я пытаюсь создать функцию, которая изменяет 0 слот массива на входное значение. Однако я хочу, чтобы эта функция могла работать только один раз. Как мне это сделать, любая помощь очень благодарна.Сделать функцию только один раз (Javascript)

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>"; 
    } 
} 

ответ

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; 
} 
0

Существует много способов сделать это.

Просто простой способ установить значение флага.

if(flag){ 
//your code here... 
flag = !flag; 
} 

ТАКЖЕ, если значение флага 1 сначала будет работать. Тогда как значение флага меняется на 0, то в следующий раз он называется, он не будет вызываться, так как флаг равен 0.

1

виду казнены переменная:

var something = (function() { 
    var executed = false; 
    return function() { 
     if (!executed) { 
      executed = true; 
      // do something 
     } 
    }; 
})(); 
Смежные вопросы