03.02.2017, 20:59
|
|
Профессор
|
|
Регистрация: 27.05.2010
Сообщений: 33,121
|
|
Saratov64,
нужна глобальная видимость для timer
|
|
04.02.2017, 10:19
|
Интересующийся
|
|
Регистрация: 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.
|
|
04.02.2017, 10:46
|
|
Профессор
|
|
Регистрация: 27.05.2010
Сообщений: 33,121
|
|
Saratov64,
Пожалуйста, отформатируйте свой код!
Для этого его можно заключить в специальные теги: js/css/html и т.п., например:
[js]
... ваш код...
[/js]
О том, как вставить в сообщение исполняемый javascript и html-код, а также о дополнительных возможностях форматирования - читайте http://javascript.ru/formatting.
|
|
04.02.2017, 10:50
|
|
Профессор
|
|
Регистрация: 27.05.2010
Сообщений: 33,121
|
|
Сообщение от Saratov64
|
реализация пока не получилась, поправьте мой код
|
код бред, описание не понял, жду телепата
|
|
04.02.2017, 10:52
|
Интересующийся
|
|
Регистрация: 17.03.2016
Сообщений: 22
|
|
Сообщение от рони
|
Saratov64,
Пожалуйста, отформатируйте свой код!
Для этого его можно заключить в специальные теги: js/css/html и т.п., например:
[js]
... ваш код...
[/js]
О том, как вставить в сообщение исполняемый javascript и html-код, а также о дополнительных возможностях форматирования - читайте http://javascript.ru/formatting.
|
Извините, исправил! (поторопился)
|
|
04.02.2017, 11:00
|
|
Профессор
|
|
Регистрация: 27.05.2010
Сообщений: 33,121
|
|
Saratov64,
попробуйте описать алгоритм того что хотите сделать
|
|
04.02.2017, 11:19
|
Интересующийся
|
|
Регистрация: 17.03.2016
Сообщений: 22
|
|
Сообщение от рони
|
Saratov64,
попробуйте описать алгоритм того что хотите сделать
|
Тех задание получается надо. Попробую.
есть БД. В нее пишутся данные с датчиков. Нужно для мониторинга по каждому датчику смотреть ТЕКУЩИЕ -МГНОВЕННЫЕ ДАННЫЕ которые должны отображаться на мониторе так же онлайн.
Человек нажимает на 1 ссылку, и смотрит показания параметров 1го датчика, и они у него отображаются раз в 6 секунд.
к каждой ссылке привязан PHP запрос
SELECT * FROM dbo.test
1 ссылка - 1й датчик
2 ссылка -2й датчик
3 ссылка ......
...
..
7 ссылка - 7й датчик
Потом допустим ему нужно показания второго датчика мониторить, он нажимает на вторую ссылку, и прирывается выполнение опроса первой ссылки.
А как это реализовать, я придумал, только через условие if
|
|
04.02.2017, 11:28
|
|
Профессор
|
|
Регистрация: 27.05.2010
Сообщений: 33,121
|
|
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>
|
|
04.02.2017, 11:37
|
Интересующийся
|
|
Регистрация: 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.
|
|
04.02.2017, 11:50
|
|
Профессор
|
|
Регистрация: 27.05.2010
Сообщений: 33,121
|
|
Сообщение от Saratov64
|
заработала в IE
|
неужели у вас ie ниже 8 версии? может дело в jquery?
|
|
|
|