|
06.07.2014, 20:31
|
Аспирант
|
|
Регистрация: 19.06.2014
Сообщений: 34
|
|
Печатает... Не печатает...
подскажи плиз как реализовать следующее:
есть, например, textarea, при keydown лабел который находится рядом меняет свой текст на "Печатает...", если же пользователь не печатает, меняет на "Не печатает..."
|
|
06.07.2014, 21:39
|
Профессор
|
|
Регистрация: 17.05.2014
Сообщений: 197
|
|
Попробуй так
Код:
|
label=document.getElementById("label")
label.innerHTML="NOT"
textarea=document.getElementById("area")
textarea.addEventListener("focus", function(){this.onkeydown=function(){label.innerHTML="PRINT"}})
textarea.addEventListener("blur", function(){label.innerHTML="NOT"}) |
Код:
|
<html>
<head><title>head</title></head>
<body>
<textarea id="area"></textarea>
<div id="label"></div>
</body>
</html> |
|
|
06.07.2014, 21:46
|
Профессор
|
|
Регистрация: 17.05.2014
Сообщений: 197
|
|
Сообщение от accept
|
если же пользователь не печатает
|
Да, вот это я сразу не заметил. Видимо вариант выше тебе не подойдет. Тут наверное нужно через сетинтервал решать. Ща, чуть позжа мож напишу, если кто другой не напишет
|
|
06.07.2014, 22:34
|
Аспирант
|
|
Регистрация: 19.06.2014
Сообщений: 34
|
|
89
|
|
06.07.2014, 22:35
|
Аспирант
|
|
Регистрация: 19.06.2014
Сообщений: 34
|
|
Сообщение от foo
|
Да, вот это я сразу не заметил. Видимо вариант выше тебе не подойдет. Тут наверное нужно через сетинтервал решать. Ща, чуть позжа мож напишу, если кто другой не напишет
|
напиши плиз код
|
|
06.07.2014, 23:40
|
Профессор
|
|
Регистрация: 17.05.2014
Сообщений: 197
|
|
Быдлокод конечно, но, вроде, работает:
Код:
|
label=document.getElementById("label")
label.innerHTML="NOT PRINTING"
textarea=document.getElementById("area")
textarea.fixValue=textarea.value
textarea.getValue=function(){return this.value}
textarea.onkeydown=function(){label.innerHTML="PRINTING"}//сокращаем отклик
observer="id=setInterval(function(){"+
"if(textarea.fixValue===textarea.getValue()){label.innerHTML=\"NOT PRINTING\"; return}"+
"label.innerHTML=\"PRINTING\"; textarea.fixValue=textarea.getValue()"+
"}, 1000)"
textarea.addEventListener("focus", function(){eval(observer)})
textarea.addEventListener("blur", function(){clearInterval(id)}) |
Последний раз редактировалось foo, 07.07.2014 в 00:01.
|
|
07.07.2014, 00:08
|
Аспирант
|
|
Регистрация: 19.06.2014
Сообщений: 34
|
|
Сообщение от foo
|
Да, вот это я сразу не заметил. Видимо вариант выше тебе не подойдет. Тут наверное нужно через сетинтервал решать. Ща, чуть позжа мож напишу, если кто другой не напишет
|
Сообщение от foo
|
Быдлокод конечно, но, вроде, работает:
Код:
|
label=document.getElementById("label")
label.innerHTML="NOT PRINTING"
textarea=document.getElementById("area")
textarea.fixValue=textarea.value
textarea.getValue=function(){return this.value}
textarea.onkeydown=function(){label.innerHTML="PRINTING"}//сокращаем отклик
observer="id=setInterval(function(){"+
"if(textarea.fixValue===textarea.getValue()){label.innerHTML=\"NOT PRINTING\"; return}"+
"label.innerHTML=\"PRINTING\"; textarea.fixValue=textarea.getValue()"+
"}, 1000)"
textarea.addEventListener("focus", function(){eval(observer)})
textarea.addEventListener("blur", function(){clearInterval(id)}) |
|
не работает(
|
|
07.07.2014, 00:12
|
Профессор
|
|
Регистрация: 17.05.2014
Сообщений: 197
|
|
Сообщение от accept
|
не работает(
|
Не знаю, у меня в мозиле работает. Ты в чем запускаешь?
|
|
07.07.2014, 00:14
|
Профессор
|
|
Регистрация: 17.05.2014
Сообщений: 197
|
|
ты во этот код в хтмл не забыл вставить случаем?
<body>
<textarea id="area"></textarea>
<div id="label"></div>
</body>
|
|
07.07.2014, 00:16
|
|
Профессор
|
|
Регистрация: 27.05.2010
Сообщений: 33,109
|
|
<!DOCTYPE HTML>
<html>
<head>
<title>Untitled</title>
<meta charset="utf-8">
</head>
<body>
<textarea id="area"></textarea>
<div id="label">Не печатает...</div>
<script>
var timer, show = document.querySelector('#label');
document.querySelector('#area').oninput = function () {
window.clearTimeout(timer);
show.innerHTML = 'Печатает...';
window.setTimeout(function () {
show.innerHTML = 'Не печатает...'
}, 1500)
}
</script>
</body>
</html>
|
|
|
|