Javascript-форум (https://javascript.ru/forum/)
-   Элементы интерфейса (https://javascript.ru/forum/dom-window/)
-   -   Передача результата функции, другой функции (https://javascript.ru/forum/dom-window/69452-peredacha-rezultata-funkcii-drugojj-funkcii.html)

Aleksandr Chirkov 24.06.2017 15:02

Передача результата функции, другой функции
 
Всем привет! У меня вопрос по передачи результата функции, для другой функции. Я недавно программирую :dance: и хотел понять, вот что:
У меня есть 10 одинаковых элементов картинок работающих как кнопки (картинка плюс - добавить), у них у всех разные Id - (button1,button2,button3 ...и.т.д)
Мой скрипт берёт все id кнопок и заводит их в массив.
После этого скрипт берёт полный объект типа кнопка и по нажатию вызывает другую функцию.

Так вот: у меня в первой функции, есть локальная переменная (a) и я бы хотел передать её во вторую функцию pushTheBottom, если я делаю pushTheBottom(a) - оно отработает, но будет игнорировать событие .onclick

Подскажите как мне сделать связь между элементом который я нажимаю (button1,button2,button3 ...и.т.д) и функциями allbutton и pushTheBottom. Пожалуйста! Или хотя бы подскажите, какую статью почитать!)

window.onload = newTeamButton;
var numberOfButton = new Array(); //массив с именами кнопок
var fullObject = new Array(); //массив с полным объектом типа "кнопка"

function newTeamButton() {	//обработчик кнопки
	allButton();
	}

function allButton() 
{
for (a = 0; a<7 ; a++) {
  numberOfButton[a] =  document.getElementById("button" + a).id;
  fullObject[a] = document.getElementById("button" + a);
  fullObject[a].onclick = pushTheButton;
		}
	}
	
function pushTheButton() {
  oldScore = document.getElementById("sentence" + numberOfButton[a]);
  alert(oldScore);
	}

рони 24.06.2017 16:04

Aleksandr Chirkov,
function allButton() {
    for (a = 0; a < 7; a++) {
        numberOfButton[a] = document.getElementById("button" + a).id;
        fullObject[a] = document.getElementById("button" + a);
        fullObject[a].onclick = function(f) {
            return function() {
                oldScore = document.getElementById("sentence" + numberOfButton[f]);
                alert(oldScore)
            }
        }(a)
    }
};

рони 24.06.2017 16:06

Цитата:

Сообщение от Aleksandr Chirkov
какую статью почитать!

https://javascript.ru/basic/closure

Aleksandr Chirkov 24.06.2017 17:32

Рони спасибо большое!! Всё получилось - прелестно! Буду изучать ;-)


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