Javascript.RU

Создать новую тему Ответ
 
Опции темы Искать в теме
  #11 (permalink)  
Старый 03.02.2017, 20:59
Аватар для рони
Профессор
Отправить личное сообщение для рони Посмотреть профиль Найти все сообщения от рони
 
Регистрация: 27.05.2010
Сообщений: 33,070

Saratov64,
нужна глобальная видимость для timer
Ответить с цитированием
  #12 (permalink)  
Старый 04.02.2017, 10:19
Интересующийся
Отправить личное сообщение для Saratov64 Посмотреть профиль Найти все сообщения от Saratov64
 
Регистрация: 17.03.2016
Сообщений: 22

Сообщение от рони Посмотреть сообщение
Saratov64,
$("ДРУГУЮ ЛЮБУЮ КНОПКУ").on("click",  function() {
clearInterval(timer)
             })
Сообщение от рони Посмотреть сообщение
Saratov64,
нужна глобальная видимость для timer
Вынес ее за функцию, не хочет убиваться. что-то не так в моем понимании
вообщем я сформулировал свое меню. Как оно должно работать.
И так, у меня есть три - или n.... ссылок для примера три.
Я хочу нажать первую, идет опрос датчика раз в 6 секунд, (устанавливаю глобальную переменную в значение = 1), как только я нажимаю вторую ссылку, то меняется значение первой, и запускается clearInterval(timer); и запускается опрос второй ссылки, ну и так далее. Это по моей теории, конечно, опять же если я правильно для себя ставлю задачу, но реализация пока не получилась, поправьте мой код, пожалуйста ...
<!DOCTYPE html>

<html>
<head>
  <title>Untitled</title>
  <meta charset="utf-8">
  <style type="text/css">
  </style>


<script>
var	i=0; // устанавливаем первое значение ГЛОБВЛЬНОЙ переменной
	alert (i); //вывод текущего значения переменной
	timer;
	
	function allstation(){
		var i = 1;
		alert ("allstation");
		if (i==1){
		timer = setInterval(allstation, 6000);
		} else {
			clearInterval(timer);
		}
	}
		
		function st1(){
			var i = 2;
			alert ("st1");
			
			if (i==2){
				timer = setInterval(st1, 6000);
			}else{
			clearInterval(timer);
				}
			}
		
		
	function st2(){
			var i = 3;
			alert ("st2");
			
			if (i==3){
				timer = setInterval(st2, 6000);
			}else{
			clearInterval(timer);
				}
			}

  </script>

</head>

<body>
<a href="#" onclick="allstation();">allstation</a>
<br>
<a href="#" onclick="st1();">st1</a>
<br>
<a href="#" onclick="st2();">st2</a>

</body>
</html>

Последний раз редактировалось Saratov64, 04.02.2017 в 10:51.
Ответить с цитированием
  #13 (permalink)  
Старый 04.02.2017, 10:46
Аватар для рони
Профессор
Отправить личное сообщение для рони Посмотреть профиль Найти все сообщения от рони
 
Регистрация: 27.05.2010
Сообщений: 33,070

Saratov64,
Пожалуйста, отформатируйте свой код!

Для этого его можно заключить в специальные теги: js/css/html и т.п., например:
[js]
... ваш код...
[/js]


О том, как вставить в сообщение исполняемый javascript и html-код, а также о дополнительных возможностях форматирования - читайте http://javascript.ru/formatting.
Ответить с цитированием
  #14 (permalink)  
Старый 04.02.2017, 10:50
Аватар для рони
Профессор
Отправить личное сообщение для рони Посмотреть профиль Найти все сообщения от рони
 
Регистрация: 27.05.2010
Сообщений: 33,070

Сообщение от Saratov64
реализация пока не получилась, поправьте мой код
код бред, описание не понял, жду телепата
Ответить с цитированием
  #15 (permalink)  
Старый 04.02.2017, 10:52
Интересующийся
Отправить личное сообщение для Saratov64 Посмотреть профиль Найти все сообщения от Saratov64
 
Регистрация: 17.03.2016
Сообщений: 22

Сообщение от рони Посмотреть сообщение
Saratov64,
Пожалуйста, отформатируйте свой код!

Для этого его можно заключить в специальные теги: js/css/html и т.п., например:
[js]
... ваш код...
[/js]


О том, как вставить в сообщение исполняемый javascript и html-код, а также о дополнительных возможностях форматирования - читайте http://javascript.ru/formatting.
Извините, исправил! (поторопился)
Ответить с цитированием
  #16 (permalink)  
Старый 04.02.2017, 11:00
Аватар для рони
Профессор
Отправить личное сообщение для рони Посмотреть профиль Найти все сообщения от рони
 
Регистрация: 27.05.2010
Сообщений: 33,070

Saratov64,
попробуйте описать алгоритм того что хотите сделать
Ответить с цитированием
  #17 (permalink)  
Старый 04.02.2017, 11:19
Интересующийся
Отправить личное сообщение для Saratov64 Посмотреть профиль Найти все сообщения от Saratov64
 
Регистрация: 17.03.2016
Сообщений: 22

Сообщение от рони Посмотреть сообщение
Saratov64,
попробуйте описать алгоритм того что хотите сделать
Тех задание получается надо. Попробую.

есть БД. В нее пишутся данные с датчиков. Нужно для мониторинга по каждому датчику смотреть ТЕКУЩИЕ -МГНОВЕННЫЕ ДАННЫЕ которые должны отображаться на мониторе так же онлайн.

Человек нажимает на 1 ссылку, и смотрит показания параметров 1го датчика, и они у него отображаются раз в 6 секунд.
к каждой ссылке привязан PHP запрос
SELECT * FROM dbo.test


1 ссылка - 1й датчик
2 ссылка -2й датчик
3 ссылка ......
...
..
7 ссылка - 7й датчик


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

А как это реализовать, я придумал, только через условие if
Ответить с цитированием
  #18 (permalink)  
Старый 04.02.2017, 11:28
Аватар для рони
Профессор
Отправить личное сообщение для рони Посмотреть профиль Найти все сообщения от рони
 
Регистрация: 27.05.2010
Сообщений: 33,070

Saratov64,
<!DOCTYPE html>

<html>
<head>
  <title>Untitled</title>
  <meta charset="utf-8">
  <style type="text/css">
  </style>

  <script>
window.addEventListener("DOMContentLoaded", function() {
    var btn = document.querySelectorAll(".btn");
    btn[0].addEventListener("click", function() {
        clearInterval(timer);
        timer = setInterval(station1, timeInterval)
    });
    btn[1].addEventListener("click", function() {
        clearInterval(timer);
        timer = setInterval(station2, timeInterval)
    });
    function station1() {
        document.querySelector("#main").innerHTML += "1111 "
    }
    function station2() {
        document.querySelector("#main").innerHTML += "2222 "
    }


    var timeInterval = 1E3;
    var timer = setInterval(station1, timeInterval)
});
  </script>

  </script>
</head>

<body>
<div id="main"></div>
<input class="btn" name="" type="button" value="fn1">
<input class="btn" name="" type="button" value="fn2">
</body>
</html>
Ответить с цитированием
  #19 (permalink)  
Старый 04.02.2017, 11:37
Интересующийся
Отправить личное сообщение для Saratov64 Посмотреть профиль Найти все сообщения от Saratov64
 
Регистрация: 17.03.2016
Сообщений: 22

<script>
window.addEventListener("DOMContentLoaded", function() {
    var btn = document.querySelectorAll(".btn");
    btn[0].addEventListener("click", function() {
        clearInterval(timer);
        timer = setInterval(station1, timeInterval)
    });
    
  </script>


Я тока с сентября начал изучать, и Вы, мне приводили уже в пример, конструкцию данную, она НЕ заработала в IE, мне бы сделать, для IE самое главное. Я почитал, и как понял что window.addEventListener("DOMContentLoaded", function() в IE может не работать.

На этом сайте, нашел
Событие DOMContentLoaded не поддерживается в IE8-, но почти все фреймворки умеют его эмулировать. Если нужна отдельная функция только для кросс-браузерного аналога DOMContentLoaded – можно использовать jquery.documentReady.js.

Последний раз редактировалось Saratov64, 04.02.2017 в 11:52.
Ответить с цитированием
  #20 (permalink)  
Старый 04.02.2017, 11:50
Аватар для рони
Профессор
Отправить личное сообщение для рони Посмотреть профиль Найти все сообщения от рони
 
Регистрация: 27.05.2010
Сообщений: 33,070

Сообщение от Saratov64
заработала в IE
неужели у вас ie ниже 8 версии? может дело в jquery?
Ответить с цитированием
Ответ



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

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


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
AJAX обновление div в разных частях страницы kkolorid AJAX и COMET 9 19.12.2014 11:58
Обновление select без перезагрузки страницы Devsanterr Javascript под браузер 1 01.09.2014 09:16
Countdown и обновление страницы. Hekk0 Общие вопросы Javascript 0 01.07.2014 20:07
load и динамическое обновление страницы IONEX AJAX и COMET 12 08.07.2012 20:57
Обновление страницы AndreyS AJAX и COMET 6 16.05.2011 15:55