Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > IT форум > Помощь студентам
Регистрация

Восстановить пароль

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 10.07.2012, 16:17   #1
Gift020
Пользователь
 
Регистрация: 26.12.2011
Сообщений: 20
По умолчанию Реализация сброса таймаута на JavaScript

Добрый день!
Необходимо реализовать на JavaScript таймаут, который при бездействии пользователя на сайте будет вызывать определенную функцию.

Ниже привел пример того, как я себе представляю решение данной задачи.
Вопрос, существуют ли стандартные методы / функции, возможно в какой-то библиотеке, отслеживающие действия пользователя? (ведь onClick здесь не подойдет)


Код:
	var timer = setTimeout("моя_функция()", 1000000);
	if (??? происходит нажатие кнопки ???){
	начать отсчет таймаута заново;
	}
Gift020 вне форума Ответить с цитированием
Старый 10.07.2012, 17:50   #2
Zer0
Форумчанин
 
Аватар для Zer0
 
Регистрация: 13.12.2007
Сообщений: 788
По умолчанию

Отслеживание действий - смотря какой
OnClick - вполне подойдет, если переменную таймера вытащить в глобал
А начать заново можно просто сбросив его и начав повторно (clearTimeout() если не изменяет память)
благодарность - сюда (не забываем писать от кого)
Zer0 вне форума Ответить с цитированием
Старый 10.07.2012, 17:58   #3
Kostia
Участник клуба
 
Аватар для Kostia
 
Регистрация: 21.11.2007
Сообщений: 1,692
По умолчанию

Код:
var timer = setTimeout("моя_функция()", 1000000);
$("#button_id").click(function() {
  clearTimeout(timer);
});
http://api.jquery.com/click/
Kostia вне форума Ответить с цитированием
Старый 11.07.2012, 15:00   #4
Gift020
Пользователь
 
Регистрация: 26.12.2011
Сообщений: 20
По умолчанию

Здравствуйте!
Спасибо за ответы!

Написал тестовую страничку, пока, к сожалению не работает.

Код:
<!DOCTYPE html>
<html>
	<head>
		<title>Test page</title>
		<script src="jquery-1.7.2.min.js" type="text/javascript"></script>
	</head>
	<body>

		<div id="button">

			<input type="button" value="Push!" onclick="document.write('Hello!')" />
		
		</div>

		<script type="text/javascript">
			
			var timer = setTimeout("alert('Alive!')", 8000);
			$("#button").click(function(){
				clearTimeout(timer);
			})
			
		</script>

	</body>
</html>
в данном примере при открытии странички должен начать отсчитываться таймер. если пользователь не совершает никаких действий, через 8 секунд срабатывает алерт. если пользователь нажимает кнопку "push!", таймер начинает отсчет заново. примерно так

в настоящий момент таймер никак не реагирует на нажатие кнопки. стабильно через 8 секунд после открытия срабатывает алерт
Gift020 вне форума Ответить с цитированием
Старый 11.07.2012, 15:30   #5
Zer0
Форумчанин
 
Аватар для Zer0
 
Регистрация: 13.12.2007
Сообщений: 788
По умолчанию

изучите повнимательнее работу с jQuery, вешать событие нельзя пока документ не загружен до конца
Код:
 $(document).ready(function(){
   // а уже здесь навешать событие на кнопку
 });
благодарность - сюда (не забываем писать от кого)
Zer0 вне форума Ответить с цитированием
Старый 12.07.2012, 13:30   #6
Gift020
Пользователь
 
Регистрация: 26.12.2011
Сообщений: 20
По умолчанию

Спасибо за помощь!
Gift020 вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц

Опции темы Поиск в этой теме
Поиск в этой теме:

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


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Javascript реализация Vampirius JavaScript, Ajax 3 15.06.2012 12:57
Кнопка сброса ячеек столбца Lord Rain Microsoft Office Excel 4 20.02.2012 08:33
Javascript - классы, они есть или их нету в Javascript? Kasper1 JavaScript, Ajax 3 05.03.2011 09:42
реализация объектов на JavaScript 1048576 Помощь студентам 2 07.05.2010 03:21
Защита от сброса BIOS'а ---Евгений--- Win Api 3 24.04.2009 21:02