Javascript-форум (https://javascript.ru/forum/)
-   Общие вопросы Javascript (https://javascript.ru/forum/misc/)
-   -   Interval + click (https://javascript.ru/forum/misc/75538-interval-click.html)

zikworld 17.10.2018 17:30

Interval + click
 
Когда нажимаешь на кнопку REFRESH она крутится и покадгружает php если еще раз нажать - все останавливается

При многократном нажатии на кнопку REFRESH она начинает ускоряться хотя я не пойму почему. перепробовал много вариантов

У меня предположение что надо остановить как то функцию при втором нажатии а не останавливаю вот оно и стакается





<div id="cont"></div>


<img class='svrefresh' src="refresh.png" />

<script type="text/javascript">


var st = 0;
var angle = 0;

$('.svrefresh').click(function() {

if(st==0){

int = setInterval(function() { // запускаем интервал
show();
st = 1;

angle+=10;
$(".svrefresh").css({"transform": "rotate("+angle+"deg)"});

}, 1000);
}



if(st==1){
clearInterval(int);
st = 0;
}

function show(){
    
    $.ajax({
        url: 'ajax.php',
        cache: false,
        success: function(html){
            $('#cont').html(html);
        }

    });

}
    
});




</script>

SuperZen 18.10.2018 12:32

<div id="cont"></div>
<img class='svrefresh' src="refresh.png" />
<script type="text/javascript">
  var int = null
  var angle = 0;
  $('.svrefresh').click(function () {
    // если есть int значит мы уже нажимали кнопку
    // тогда удалим текущий интервал
    int && clearInterval(int)
    int = setInterval(function () { // запускаем интервал
      show();
      angle += 10;
      $(".svrefresh").css({ "transform": "rotate(" + angle + "deg)" });
    }, 1000);

    function show() {
      $.ajax({
        url: 'ajax.php',
        cache: false,
        success: function (html) {
          $('#cont').html(html);
        }
      });
    }
  });
</script>


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