Javascript.RU

Создать новую тему Ответ
 
Опции темы Искать в теме
  #1 (permalink)  
Старый 06.07.2014, 20:31
Аспирант
Отправить личное сообщение для accept Посмотреть профиль Найти все сообщения от accept
 
Регистрация: 19.06.2014
Сообщений: 34

Печатает... Не печатает...
подскажи плиз как реализовать следующее:
есть, например, textarea, при keydown лабел который находится рядом меняет свой текст на "Печатает...", если же пользователь не печатает, меняет на "Не печатает..."
Ответить с цитированием
  #2 (permalink)  
Старый 06.07.2014, 21:39
foo foo вне форума
Профессор
Отправить личное сообщение для foo Посмотреть профиль Найти все сообщения от foo
 
Регистрация: 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>
Ответить с цитированием
  #3 (permalink)  
Старый 06.07.2014, 21:46
foo foo вне форума
Профессор
Отправить личное сообщение для foo Посмотреть профиль Найти все сообщения от foo
 
Регистрация: 17.05.2014
Сообщений: 197

Сообщение от accept
если же пользователь не печатает
Да, вот это я сразу не заметил. Видимо вариант выше тебе не подойдет. Тут наверное нужно через сетинтервал решать. Ща, чуть позжа мож напишу, если кто другой не напишет
Ответить с цитированием
  #4 (permalink)  
Старый 06.07.2014, 22:34
Аспирант
Отправить личное сообщение для accept Посмотреть профиль Найти все сообщения от accept
 
Регистрация: 19.06.2014
Сообщений: 34

89
Ответить с цитированием
  #5 (permalink)  
Старый 06.07.2014, 22:35
Аспирант
Отправить личное сообщение для accept Посмотреть профиль Найти все сообщения от accept
 
Регистрация: 19.06.2014
Сообщений: 34

Сообщение от foo Посмотреть сообщение
Да, вот это я сразу не заметил. Видимо вариант выше тебе не подойдет. Тут наверное нужно через сетинтервал решать. Ща, чуть позжа мож напишу, если кто другой не напишет
напиши плиз код
Ответить с цитированием
  #6 (permalink)  
Старый 06.07.2014, 23:40
foo foo вне форума
Профессор
Отправить личное сообщение для foo Посмотреть профиль Найти все сообщения от foo
 
Регистрация: 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.
Ответить с цитированием
  #7 (permalink)  
Старый 07.07.2014, 00:08
Аспирант
Отправить личное сообщение для accept Посмотреть профиль Найти все сообщения от accept
 
Регистрация: 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)})
не работает(
Ответить с цитированием
  #8 (permalink)  
Старый 07.07.2014, 00:12
foo foo вне форума
Профессор
Отправить личное сообщение для foo Посмотреть профиль Найти все сообщения от foo
 
Регистрация: 17.05.2014
Сообщений: 197

Сообщение от accept
не работает(
Не знаю, у меня в мозиле работает. Ты в чем запускаешь?
Ответить с цитированием
  #9 (permalink)  
Старый 07.07.2014, 00:14
foo foo вне форума
Профессор
Отправить личное сообщение для foo Посмотреть профиль Найти все сообщения от foo
 
Регистрация: 17.05.2014
Сообщений: 197

ты во этот код в хтмл не забыл вставить случаем?
<body>
<textarea id="area"></textarea>
<div id="label"></div>
</body>
Ответить с цитированием
  #10 (permalink)  
Старый 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>
Ответить с цитированием
Ответ



Опции темы Искать в теме
Искать в теме:

Расширенный поиск


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
jQuery("#order").print(); не печатает только в opera evro23x jQuery 1 21.02.2013 15:19