Эта строка:
map.on("click", getValues);
будет вызывать getValues
при нажатии на карту, но возвращаемое значение от этого никуда не денется.
Я думаю, что если вы хотите, чтобы переменная вне области действия обновлялась при нажатии, вам нужно будет сделать
var x;
function getValues() {
x = document.getElementById("countResult_H2").innerHTML;
}
Таким образом x
будет обновлено. Однако тогда вам нужно что-то еще, чтобы заметить, что х был изменен, и что-то с этим сделать.
EDIT
Как указывает @Barmar в комментарии, вам нужно что-то сделать с измененной переменной.
В настоящее время ваш код работает так:
- создать замыкание по переменной
x
.
- установить обработчик клика для обновления
x
- возьмите копию значения
x
, которое не инициализировано, как show
- установить для innerHTML
countResult_x
значение show
(т. Е. Пусто!)
Затем, когда вы нажимаете, все, что происходит, это то, что х меняется. Остальная часть кода (шаги 3 и 4) не запускаются, потому что вы не сказали им запускаться.
Неясно, если / почему вы хотите переменную x
, где она у вас есть. Похоже, вы могли бы просто сделать это как:
function getValues() {
document.getElementById('countResult_x').innerHTML =
document.getElementById("countResult_H2").innerHTML;
}
Или вы могли бы сделать что-то вроде
var x = '';
function getValues() {
x += "<br/><br/>x is now: " + document.getElementById("countResult_H2").innerHTML;
document.getElementById('countResult_x').innerHTML = x;
}