Javascript-форум (https://javascript.ru/forum/)
-   Элементы интерфейса (https://javascript.ru/forum/dom-window/)
-   -   не могу полностью остановить setInterval (https://javascript.ru/forum/dom-window/61206-ne-mogu-polnostyu-ostanovit-setinterval.html)

Болат 08.02.2016 19:07

не могу полностью остановить setInterval
 
при нажатии на кнопку запускается setInterval, но при нескольких запусках останавливается только последний!
<!DOCTYPE html>
<html>
 <head>
  <title>Lesson 9</title>
<script>
var $rot=0;
  var $tim3;
  var c=0;
  var t;
  var timer_is_on=0;

function my_click_but1($event) 
{$tim3=setInterval("rotinp(5);",1000);}

function my_click_but2($event)
{ clearInterval($tim3);}

function rotinp($pl) 
{$rot=$rot+$pl;
document.getElementById('text2').style.transform="rotate("+$rot+"deg)";
}
</script>
</head>
<body>
<input type=text id="text2">
<div id="div1"></div></br>
<input type=button id="but1" value="Включить SetInterval"
onClick="my_click_but1(event);">
<input type=button id="but2" value="Выключить SetInterval"
onClick="my_click_but2(event);"></br></br>
</body>
</html>

рони 08.02.2016 19:39

Болат,
function my_click_but1($event)
{my_click_but2();$tim3=setInterval("rotinp(5);",1000);}

DynkanMaclaud 08.02.2016 19:47

Болат,
https://jsfiddle.net/3rztdx2m/1/
Я решил написать код в такой же манере как пишешь его Ты, т.е
function get ()
{ alert('why') };

Удобно правда?

Болат 08.02.2016 19:50

Цитата:

Сообщение от рони (Сообщение 406896)
Болат,
function my_click_but1($event)
{my_click_but2();$tim3=setInterval("rotinp(5);",1000);}

Спасибо, интересное решение, но он теперь не ускоряет вращение при повторном нажатии, а сразу его удаляет!!! нужно чтобы при нескольких нажатиях ускорял, а затем сразу все отключал!

DynkanMaclaud 08.02.2016 19:50

рони,
я чето подумал что будет как то неправильным очищать интервал когда его еще нету((

рони 08.02.2016 19:55

Цитата:

Сообщение от DynkanMaclaud
я чето подумал что будет как то неправильным очищать интервал когда его еще нету((

можно мин нет, и очищать можно любым clear... главное указать идентификатор

рони 08.02.2016 19:58

Цитата:

Сообщение от Болат
не ускоряет вращение при повторном нажатии

так изменяйте скорость а не количество интервалов, а лучше забыть про setInterval и никогда его не использовать

Болат 08.02.2016 20:00

Цитата:

Сообщение от рони (Сообщение 406905)
так изменяйте скорость а не количество интервалов, а лучше забыть про setInterval и никогда его не использовать

Спасибо, но вот именно этим методом надо, не изменяя скорости:)

рони 08.02.2016 20:07

Болат,
тогда создайте массив интервалов


Часовой пояс GMT +3, время: 09:07.