Javascript-форум (https://javascript.ru/forum/)
-   Events/DOM/Window (https://javascript.ru/forum/events/)
-   -   Функция не хочет заканчиваться (https://javascript.ru/forum/events/77193-funkciya-ne-khochet-zakanchivatsya.html)

Володимир 04.04.2019 23:41

Функция не хочет заканчиваться
 
<span class="firstNumber"></span>
<span class="sign"></span>
<span class="secondNumber"></span>
        <button id="plus">START</button>

var firstNumb = document.querySelector(".firstNumber");
var secondNumb = document.querySelector(".secondNumber");
var signn = document.querySelector(".sign");
var numb = 100;
var signArray = ["+","-","*","/"];

function randomNumbers(firstNumber,secondNumber){

    function randomNumber(){
        return Math.floor(Math.random()*numb)+1;
    }

    var firstNumber = randomNumber(numb);
    numb = Number(firstNumber) - 1;
    var secondNumber = randomNumber(numb);

    sign(firstNumber,secondNumber);
}


function sign(firstNumber,secondNumber,randomSign){
     var randomSign = signArray[Math.floor(Math.random()*2)];
    putInBox(firstNumber,secondNumber,randomSign);
}

function putInBox(firstNumber,secondNumber,randomSign){
firstNumb.innerHTML = firstNumber;
secondNumb.innerHTML = secondNumber;
signn.innerHTML = randomSign;
}
    
    function all(){
randomNumbers(),sign(),putInBox();
    }
    document.getElementById("plus").addEventListener("click",all)

Все хорошо пока не вызывается функция putInBox, и когда вставляется знак в span, функция sign, повторяется еще раз и еще раз к пока все не станет, undefined
Помогите пожалуйста, очень прошу :)

рони 05.04.2019 00:47

Володимир,
<!DOCTYPE html>

<html>
<head>
    <title>Untitled</title>
    <meta charset="utf-8">


</head>

<body>
<span class="firstNumber"></span>
<span class="sign"></span>
<span class="secondNumber"></span>
        <button id="plus">START</button>
 <script>
var firstNumb = document.querySelector(".firstNumber");
var secondNumb = document.querySelector(".secondNumber");
var signn = document.querySelector(".sign");
var numb = 100;
var signArray = ["+","-","*","/"];
function randomNumber(numb){
        return Math.floor(Math.random()*numb);
    }
function rand(){
    var firstNumber = randomNumber(numb);
    var secondNumber = randomNumber(numb);
    var randomSign = signArray[randomNumber(signArray.length)];
    if(randomSign === "/" && !secondNumber) secondNumber = randomNumber(numb) + 1;
    putInBox(firstNumber,secondNumber,randomSign);
}

function putInBox(firstNumber,secondNumber,randomSign){
firstNumb.innerHTML = firstNumber;
secondNumb.innerHTML = secondNumber;
signn.innerHTML = randomSign;
}

document.getElementById("plus").addEventListener("click",rand)
    </script>
</body>
</html>


Часовой пояс GMT +3, время: 16:54.