Показать сообщение отдельно
  #1 (permalink)  
Старый 07.02.2018, 20:26
Аспирант
Отправить личное сообщение для alecto Посмотреть профиль Найти все сообщения от alecto
 
Регистрация: 12.11.2014
Сообщений: 84

Передача this в качестве параметра в функцию setTimeout
нужно восстановить значение кнопки, которая была нажата, через определенный промежуток времени.

помогите пожалуйста, не получается разобраться, делаю так:

var fnCounter = function() {
  var tempButton = this.innerHTML;
  this.innerHTML = 'Added';
  setTimeout(fnRestore(this.innerHTML), 1000);
};

function fnRestore(elem) {
  alert(elem);
  elem = "222";
}


elem в функции fnRestore при этом имеет значение "Added", т.е. this.innerHTML был передан в функцию в качестве параметра.
но
elem = "222";
не меняет текст нажатой кнопки.

кроме того fnRestore почему-то срабатывает сразу, а не через 1сек.


если вызывать таймер таким образом
setTimeout(fnRestore, 1000, this.innerHTML);

то функция fnRestore срабатывает через 1сек, но с тем же результатом - я не могу присвоить текст кнопке внутри функции fnRestore.

Последний раз редактировалось alecto, 07.02.2018 в 20:45.
Ответить с цитированием