Javascript-форум (https://javascript.ru/forum/)
-   Общие вопросы Javascript (https://javascript.ru/forum/misc/)
-   -   Как передать переменную из одной функции в другую? (https://javascript.ru/forum/misc/52007-kak-peredat-peremennuyu-iz-odnojj-funkcii-v-druguyu.html)

E}|{uk 30.11.2014 07:14

Как передать переменную из одной функции в другую?
 
Дело в том, что вторая функция находится внутри первой и срабатывает при клик евенте.
function first (){
     var qwe;
     qwe = 0;      
     var asd = 0; //здесь меняющаяся переменная (0 или больше)
     
     var click = document.getElementById("div"); 
     click.onclick = function (e) {

		var e = e || window.event;

  		var target = e.target || e.srcElement;

    if (this === target && asd === 0) { //:-/ значение asd видит, 
       qwe++;                                     //а qwe поменять не может.
    }
    else if (this === target && asd > 0) {
        alert('blablabla');
    }
    else {
    	alert('blabla');
    }
}
}
first();

Erolast 30.11.2014 08:22

Цитата:

значение asd видит,
//а qwe поменять не может.
Да ну?
<button id="div">div</button>
<script>
function first() {
     var qwe;
     qwe = 0;     
     var asd = 0;
      
     var click = document.getElementById("div");
     click.onclick = function(e) {
       var e = e || window.event;
 
       var target = e.target || e.srcElement;
 
       if (this === target && asd === 0) {
          qwe++;
       }
       else if (this === target && asd > 0) {
           alert('blablabla');
       }
       else {
           alert('blabla');
       }
       alert(qwe);
    }
}
first();
</script>

E}|{uk 30.11.2014 10:27

Ситуацию неправильно показал оказывается.
 
Первая функция каждое определенное время выводит числа без остановки. Переменная qwe присутствует на странице и по умолчанию равна 0. Во второй функции эта переменная должна увеличиться на 1 (и все таки оказывается увеличивается!), однако на странице она не меняется.

<button id="div">div</button>
<script>
function first() {
     var flow = Math.floor(Math.random()*100 + 1); //Скажем, вот поток чисел
     document.getElementById('num').innerHTML=+flow; //Вот выводится на страничку.
     var timer = setTimeout(first, 1000);
     
     var qwe;
     qwe = 0;     
     var asd = 0;
      
     var click = document.getElementById("div");
     click.onclick = function(e) {
       var e = e || window.event;
 
       var target = e.target || e.srcElement;
 
       if (this === target && asd === 0) {
          qwe++;
       }
       else if (this === target && asd > 0) {
           alert('blablabla');
       }
       else {
           alert('blabla');
       }
       alert(qwe);
    }
}
first();
</script>

Erolast 30.11.2014 11:24

Переменная qwe присутствует на странице? Чо? Покажи полностью код.

danik.js 30.11.2014 12:03

Цитата:

Сообщение от E}|{uk
document.getElementById('num').innerHTML=+flow; //Вот выводится на страничку.

Он почему-то решил что таким образом сделал data-binding :)
Смотри https://angularjs.org/


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